数字のルートを見つけるためにプログラムをチェックするのに助けが必要です。ユーザーが 5635 を入力した場合、数字の根は 1 です。数字の数字の根を見つけるには、5 + 6 + 3 + 5 のすべての数字を足し、19 の結果を取得します。次に、結果 1 + 9 を足します= 10. 次に、数字の根である 1 になるまで 1 + 0 を追加します。
- 私は正しいアプローチを持っていますか、それとも質問への私のアプローチは完全にオフですか?
- 正解が 1 ではなく、結果が 0 になるのはなぜですか?
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.");
}
}
}
}