实现代码
这道题有点繁琐
首先要保证m<n,这时候就要用到判断语句
其次需要保证没有多余的空格
具体见代码吧,都写在注释里面了
#include<stdio.h>
int main()
{
int m,n,x,y,z;
int t,temp,count,i;
while(~scanf("%d%d",&m,&n)){
getchar();
t=1;//t作为一个判断指针,用来判断一组数中是否有水仙花数
//此处初始化为1表示不含
count=0;//初始化水仙花数计数
if(m>n){
//此处是令m<n方便后面的运算
temp=m;
m=n;
n=temp;
}
for(i=m; i<=n; i++){
//从m~n开始遍历
x=i/100;
y=(i-x*100)/10;
z=i%10;
//分别用x,y,z表示个,十,百分位的数
if(x*x*x+y*y*y+z*z*z==i){
//判断水仙花素条件是否成立
if(count==0) printf("%d",i);//当计数为0时输出“i”
else printf(" %d",i); //当计数非0时输出“ i”
t=0;//当成立的时候,将判断指针改为0表示含有水仙花数
count++;//当数为水仙花数的时候,计数器加1
}
}
if(t) printf("no\n");//当不含水仙花数时输出“no”再换行
else printf("\n"); //当含有水仙花数时直接换行
//这个if语句是用来进行遍历一组数结束后的换行输出
}
return 0;
}