Code
#include<stdio.h>
int main()
{
int num,i,m,n,x,y,z;
while(scanf("%d %d",&m,&n) != EOF)
{
i = 0;
for(num=m; num<=n; num++)
{
x = num/100;
y = (num%100)/10;
z = num%100%10;
if(x*x*x + y*y*y + z*z*z == num)
{
i++;
if(i == 1)
printf("%d",num);
else
printf(" %d",num);
}
}
if(i != 0)
printf("\n");
if(i == n)
printf("no\n");
}
return 0;
}
反思:学习C语言前期一个WA了好多次的程序,主要是因为OJ严格处理最后的空格,所以只要单独输出第一个水仙花数数,此后输出空格+数即可解决。这题的算法就是跑循环,分离三位数的各个数,然后判断是否为水仙花数。