DRoot dRoot = new DRoot();
System.out.println("Answer from main : " + dRoot.digital_root(493193));
デジタルルートは数値のすべての桁の再帰的な合計です。 nが与えられると、nの桁の和を取る。その値が2桁の場合は、このように1桁の数字が生成されるまで縮小し続けます。これは自然数にのみ適用されます。if/elseを介して値を返そうとしています
public class DRoot {
public static int digital_root(int num)
{
String temp = Integer.toString(num);
int a[] = new int[temp.length()];
int output = 0;
for(int i = 0; i < temp.length(); i++) //getting individual numbers from passed in integer
{
a[i] = Integer.parseInt(temp.substring(i, i+1));
}
for (int i = 0; i < a.length; i++) //sum of all digits in the number
{
output += a[i];
}
if(String.valueOf(output).length() != 1)
{
digital_root(output);
} else {
return output;
}
return 0;
}
}
あなたが上見ることができるように、私はしかし、「出力の値が1に等しくない場合、その後digital_root(output);
を返す」テストする場合はelse文を通じて一桁の番号を返すようにしようとしてきた、この戻りは」doesnの代わりにそれは私が戻ってくるエラーをクリアするためにそこに置いたリターンから0を返しています。この問題のお手伝いは?おかげ