【发布时间】:2014-10-17 14:11:38
【问题描述】:
我的作业要求通过嵌套的 while 循环输入命令行以查找数字是否为快乐数字。到目前为止,我有这个:
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);
}
我设置了 i
另外:我不允许在此分配中使用 for 循环或 do-while 循环。我只需要使用嵌套的while循环
快乐数:从任何正整数开始,用数字的平方和替换该数字,并重复该过程直到该数字等于 1(它将保持不变),或者它在不包含 1 的循环中无限循环(循环多长时间:500)。
【问题讨论】:
-
我建议您快速描述“快乐数字”的定义,因为至少我不会在显然没有产生正确输出的基础上对其进行逆向工程;)
-
我还建议您更清晰地格式化您的代码,并添加诊断。如果您的最内层循环曾经终止,您将退出应用程序 - 所以外层循环真的无关紧要。
-
如果 sum 永远不会为 1 怎么办?我认为是这样..
-
制作一个简短但完整的程序来演示问题也会有所帮助......我们不知道
number的价值。 -
天哪,他们应该真正专注于学校的编程,而不是把它变成一个他妈的数学问题(不幸的是我出局了)。
标签: java while-loop nested-loops