//C程序设计第四版(谭浩强)
//章节:第五章 循环结构程序设计
//题号:5.8
//题目:输出所有的水仙花数,所谓水仙花数是指一个3位数,
//其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3
#include <stdio.h>
#include <math.h>
int main()
{
int i,ge,shi,bai;
for(i=100;i<=999;i++)
{
bai=i/100;
shi=i%100/10;
ge=i%100%10/1; //分别求出每位数
if(i==pow(bai,3)+pow(shi,3)+pow(ge,3))
printf("%d ",i);
}
return 0;
}
//拓展:输出一定范围内的水仙花数
#include <stdio.h>
int judge(int n)
{
int a[10],sum=0,i=0,j,t;
t=n;
while(t)
{
a[i++]=t%10;
t=t/10;
}
for(j=i-1;j>=0;j--)
sum+=a[j]*a[j]*a[j];
if(sum==n)
return 1;
else
return 0;
}
int main()
{
int m,n,i;
printf("输入查询范围,以空格隔开:\n");
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
if(judge(i))
printf("%d ",i);
}
return 0;
}