DRoot dRoot = new DRoot();
System.out.println("Answer from main : " + dRoot.digital_root(493193));
數字根是數字中所有數字的遞歸總和。給定n,取n的數字之和。如果該值有兩位數字,則繼續以這種方式減少直到產生一位數字。這隻適用於自然數。試圖通過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);
」但是一個if else語句返回一個數字,這回沒有按」 t工作,而是從返回下面的返回0,我放在那裏清除返回錯誤。任何幫助解決這個問題?感謝