public class HelloWorld{ public static void main(String[] args){ int sum=0; for(int i=100;i<=999;i++){ int b=i; while(b>0){ int a=b%10; b=b/10; sum=a*a*a+sum; } if(sum==i){ System.out.println(i); } } } }这个代码哪里出错了
时间: 2024-04-04 16:03:35 浏览: 49
Hello World_java_world_gardenwew_
根据你提供的代码,错误出现在循环内部的计算部分。你需要将计算部分的变量sum放在循环内部,而不是在循环外部初始化为0。这样可以确保每次循环都重新计算sum的值。修改后的代码如下:
```java
public class HelloWorld {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int b = i;
int sum = 0; // 将sum放在循环内部
while (b > 0) {
int a = b % 10;
b = b / 10;
sum = a * a * a + sum;
}
if (sum == i) {
System.out.println(i);
}
}
}
}
```
这样修改后,程序将正确地输出所有满足水仙花数条件的数字。
阅读全文