public static void main(String[] args){
for(int i=0;i<=1000;i++){
//将数字的各个位剥离
int a=i/100;
int b=(i/10)%10;
int c=i%10;
//剥离结束
if(i==a*a*a+b*b*b+c*c*c){
System.out.println(i+"是水仙花数");
}
}
}
}
问题:为什么这个程序跑出来1000也是水仙花数呢?
“水仙花数是指一种三位数,其各个数之立方和等于该数。”
所以你的for循环应该
for(int i = 100; i < 1000; i++) {
// dosomthing
}
1000就不应该进到for循环里面
a=i/100,i=1000,a=10
b=0
c=0
10*10*10+0+0=1000,没毛病