これは基本的に0
からn
までの数値を二乗して出力する方法です。数値に含まれる数字の桁数dを0
からn
に戻すには、コードで正しい桁数が表示されない
それでは、n=10
とd=1
を言わせて、私たちは0 1 4 9 16 25 36 49 64 81 100
を持つことになりますと数字のこのセットで4
ものがあるので、この方法は、4
を返す必要があります。
これはうまく動作しますが、n
が、メソッドが不正な桁数を返すようになるより大きな整数で定義されている場合です。
たとえば、n=5750
とd=0
がある場合、4700
を返すと、このメソッドは3012
を返します。どこが間違っていたのですか?
public static int numberOfDig(int n, int d) {
String output="";
for(int i=0;i<=n;i++){
output+=(int)Math.pow(i, 2)+" ";
}
String[] numbers=output.split(" ");
String digit= Integer.toString(d);
int count =0;
for(int i=0;i<numbers.length;i++){
if(numbers[i].contains(digit))count++;
}
return count;
}
さらに詳しい説明が必要な場合は、お気軽にご質問ください。
最初の質問:どのデバッグを試みましたか? –
どういう意味ですか? –
https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – shmosel