我需要一些帮助来检查我的程序以找到数字根。如果用户输入 5635,则数字根为 1。要找到数字的数字根,请将数字 5 + 6 + 3 + 5 中的所有数字相加,得到结果 19。然后将结果相加 1 + 9 = 10。然后你加 1 + 0 直到你得到 1,这是你的数字根。
- 我有正确的方法还是我对这个问题的方法完全不正确?
- 为什么我得到 0 作为结果而不是 1 的正确答案?
import acm.program.*;
public class DigitRoot extends ConsoleProgram {
public void run() {
println("this program attemts to find the digit root a user enters.");
int n = readInt("please enter any positive integer: ");
int dsum = 0;
int sumtotal = 0;
int threesum = 0;
int foursum = 0;
while (n > 0) {
dsum += n % 10;
n /= 10;
if (dsum > 9) {
sumtotal = (dsum / 10) + (dsum % 10);
} else if (sumtotal > 9) {
threesum = (sumtotal / 10) + (sumtotal % 10);
} else if (threesum > 9) {
foursum = (threesum / 10) + (threesum % 10);
} else if (foursum < 9) {
println("your digit root is" + foursum);
} else {
println("this program is borken.");
}
}
}
}