#include <stdio.h>
int main()
{
int m,n;
int t;
int cnt = 0;
int one,ten,hund; //个位,十位,百位
while(scanf("%d %d",&m,&n))
{
one=ten=hund=0;
for(;m<=n;m++)
{
t = m;
one = t % 10;
t /= 10;
ten = t % 10;
hund = t/10; //分离个位,十位,百位
if(m == one*one*one+ten*ten*ten+hund*hund*hund)//判断是否为水仙花数
{
cnt++;
printf("%d ",m);
}
}
if(cnt == 0) //若条件成立,说明所给范围没有水仙花数
{
printf("no\n");
}else{
printf("\n");
}
}
return 0;
}
对于判断一个数是否是水仙花数的部分,可以构造一个独立的函数来判断,可以让代码的结构更加明晰。