public class test5 {
public static void main(String[] args) {
int i;
for (i = 100; i < 1000; i++) {
int a = i;
int x = i;
int sum = 0;
while (i != 0) {
a %= 10;
sum += a * a * a;
i /= 10;
a = i;
}
if (sum == x)
System.out.println(x);
}
}
}
while的条件不要用i,i已经被for循环用了,你在while中又把i赋值,会变成死循环。可以在第8行下,设置一个变量y = i,然后在while中使用y
public class NarcissisticNumber {
public static void main(String[] args) {
for(int i = 100; i < 1000; i++) {
narcissisticNumber(i);
}
}
public static void narcissisticNumber(int num) {
int a = num%10; //求取个位
int b = (num/10)%10; //求取十位
int c = num/100; //求取百位
if((Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3)) == num) {
System.out.print(num + " ");
}
}
}
你的while循环结束的条件是i == 0
for循环结束的条件是i >= 1000
这是个死循环啊