一、题目描述
循环输入。每组输入为两个数 l和 r,要求输出[l,r] 范围内的所有水仙花数。没有的话输出 no。当没有任何输入时,程序结束。其中,水仙花数的定义如下:
1)十进制位数有三位;
2)每一位的立方和等于它本身;
方法:
(1)用for循环,遍历a-b的范围,当i是三位数时开始判断是否为水仙花数
(2)用以下方法提取出个位、十位、百位,进行判断
x=i/100; //百位
y=i/10%10; //十位
z=i%100%10; //个位
(3)用count计数
(4)若count=0,则返回no,反之则返回count
#include<stdio.h>
int main()
{
int a=0,b=0,x=0,y=0,z=0,i=0,count=0;
while(scanf("%d%d",&a,&b)!=EOF)
{
for(i=a;i<=b;++i)
{
if(i>=100&&i<1000)
{
x=i/100; //百位
y=i/10%10; //十位
z=i%100%10; //个位
if(x*x*x+y*y*y+z*z*z==i)
{
count++;
//printf("%d\n",i);
}
}
}
if(count==0)
{
printf("NO");
break;
}
printf("%d\n",count) ;
}
}