我的任務要求通過嵌套while循環進行命令行輸入以查找數字是否爲開心數字。到目前爲止,我有這樣的:使用java查找開心數字:無限期循環嵌套
int i = 0;
int sum = 0;
int dig2, dig1, dig3, dig4, dig1next, dig2next, dig3next;
int digit1sum, digit2sum, digit3sum;
happyNumber = number;
while (i < 500){
while (happyNumber > 0){
while (sum!=1){
dig3 = happyNumber/100;
dig2 = happyNumber % 10;
dig1 = happyNumber/10;
dig2next = dig2 % 10;
dig1next = dig1 % 10;
dig3next = dig3 % 10;
digit1sum = dig1next * dig1next;
digit2sum = dig2next * dig2next;
digit3sum = dig3next * dig3next;
sum = digit1sum + digit2sum + digit3sum;
happyNumber = sum;
}
System.out.println("It is a happy number.");
System.exit(0);
}
i++;
System.out.println(i);
System.exit(0);
}
我把我< 500所以當我到達++ 500,循環應停止。我已經儘可能地將i ++放在代碼的每個部分,它永遠不會工作。我在這裏做錯了什麼?
另外:我不允許在此作業中使用for循環或do-while循環。我必須使用嵌套while循環只有
快樂數:用任意正整數開始,將通過其數字的平方和的數量,直到數等於1重複這個過程(在那裏將留下),或者它在一個不包含1的循環中循環不休(循環將持續多長時間:500)。
我建議你快速描述一個「快樂的數字」的定義,因爲至少我不會逆向工程,這顯然不會產生正確的輸出;) – JBA 2014-10-17 14:13:47
我還建議您更清晰地格式化您的代碼,並且添加診斷。如果你的最內層循環*永遠*終止,你將退出應用程序 - 所以外層循環真的不重要。 – 2014-10-17 14:15:50
如果總和永遠不會得到1呢? 我認爲是這種情況.. – 2014-10-17 14:15:58