思路:
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数
1.给定一个数据data,求取data是几位数
2.获取data中每个位置上的数据
3.利用pow函数进行次方运算,并求和
4.若求和结果与data元素本身相等,则为水仙花数,否则,不是。
#include <stdio.h>
#include <math.h>
int main()
{
int i=0;
for(i=1;i<=99999;i++)
{
int tmp=i;//各位数
int count=0;//n
int sum=0;
while(tmp)
{
tmp/=10;//各位数
count++;
}
tmp=i;
while(tmp)
{
sum+=pow((tmp%10),count);
tmp/=10;
}
if(sum==i)
{
printf("%d是水仙花数\n",i);
}
}
return 0;
}