关于不同代码输出“水仙花数”产生的结果不同的问题
题目:打印出所有的“水仙花数”,其各位数字立方和等于该数本身。第一种代码
#include<stdio.h>
#include<math.h>
int main()
{
int i=100;
int a,b,c;
while(i<1000)
{
a=i*0.01;
b=i%100/10;
c=i%10;
if (i==(pow(a,3)+pow(b,3)+pow(c,3)))
{
printf("%d\n",i);
}
i++;
}
return 0;
}
输出结果是:153,370,371
第二种代码:
#include <stdio.h>
int main()
{
int i,j,k,n=100;
while(n<1000)
{
i=n/100;
j=n%100/10;
k=n%10;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%d%d%d\n",i,j,k);
n++;
}
return 0;
}
输出的结果却是153,370,371,407
第二种输出的正确的,为什么第一种代码输出却缺了一个407呢???
[ 本帖最后由 sulang123 于 2011-2-17 01:00 编辑 ]