#include<stdio.h>
int main()
{
int m,n,i,j,a,b=0,d=0;//只要是累加,则初始值为0,不然会被随机分配值,累加就没有意义了
while(scanf("%d %d\n",&m,&n)!=EOF)//多组输入标配,只要有输入,scanf()就不等于EOF,就循环
{
for(i=m;i<=n;i++)//从m到n开始依次进循环判断是否为水仙花数
{
j=i;//为了不破坏i,j为替身
while(j>0)
{
a=j%10;//取个位位数上的数
j=j/10;//位数左移,原先的十位变为个位,因为整数相除结果只保留整数部分,而原来的个位变成了结果的小数部分被直接遗弃了
b=b+a*a*a;//个位位数上的数立方累加
}
if(b==i)//位数立法累加等于该数本身则为水仙花数
{
printf("%d ",i);//输出水仙花数
d=1;//有水仙花数d就为1
}
b=0;//每判断完一个数就要清除b,进行归零操作
}
if(d==0)//说明没有一个水仙花
{
printf("no");//结果输出no
}
}
return 0;
}
C语言学习记录——BC91 水仙花数
最新推荐文章于 2024-07-24 11:35:21 发布