程序出现错误的地方是i/=10,这样执行for循环时,i<1000恒成立,所以导致死循环,解决方法就是:循环变量i的值不能改变,应该改动num的值。。
这个求水仙花数可以不用两层循环的,如下:
int g,s,b;
for(int i=100;i<1000;i++){
g=i%10;
s=i/10%10;
b=i/100;
if(g*g*g+s*s*s+b*b*b==i){
System.out.println(i+"是水仙花数!");
}
}
last不是等于零吗?当i!=0的时候就执行do i永远不会等于零所以死循环吧。错误百出啊,不知道你想完成什么逻辑。
i<1000 永远成立。所以就是死循环。循环中。不要改变迭代变量。如果需要改变。建议用另一个变量引用迭代变量的值来进行先关操作