这道题想多了,用不到sort函数和数组,从最小值开始逐渐加1,输出一定是递增序列,另外也不用判断m,n的大小。
大意:
在给定的区间内判断水仙花数,若有多个,按递增序列输出,每两个之间有空格。附代码:
#include<stdio.h>
int main()
{
int m,n,i,j,x,y,z,sum,t;
while(scanf("%d%d",&m,&n)!=EOF)
{
int k=0;
for(i=m;i<=n;i++)
{
x=i%10;
y=(i/10)%10;
z=i/100;
sum=x*x*x+y*y*y+z*z*z;
if(sum==i)
{
if(k==0) printf("%d",i);
else printf(" %d",i);
k++;
}
}
if(k==0)
printf("no");
printf("\n");
}
return 0;
}