我正在尝试将输入输入变量n。但是,在尝试输入时,它会无限卡住。
import java.util.*;
public class Hello {
public static void main(String[] args) {
//Your Code Here
int i,r=0,max=0;
Scanner s=new Scanner(System.in);
//int i,r=0,max=0;
int n=s.nextInt();
for(i=1;i<=n;i++)
{
while(i>0)
{
r+=i%10;
i/=10;
}
if(max<=r)
max=r;
r=0;
}
System.out.print(max);
}
}
我希望程序接受一个输入,然后在程序中继续进行并计算结果。但是,相反,它在尝试接收输入时会卡住。
答案 0 :(得分:2)
问题在于while
变为零时,内部i
循环将终止。但是,外部for
循环将很高兴保持迭代。因此,无限循环实际上是for
循环,它将永远不会结束。不知道确切的代码应该做什么,我建议您直接使用另一个变量而不是i
:
for (i=1; i <= n; i++) {
int j = i;
while (j > 0) { // use variable j to do the math; don't change loop counter i
r += j % 10;
j /= 10;
}
if (max <= r) { // possibly record a new max value
max = r;
}
r = 0; // always reset r
}
答案 1 :(得分:0)
您应该改用while(i>1)
。使用while(i>0)
不起作用,因为您试图通过除法达到0,因此循环变为无限。