#include<stdio.h>
#include<math.h>
int main()
{
int i = 0;
for ( i = 0; i <=100000; i++)
{
//判断i是否为水仙花数(自幂数)
//1.计算i的位数 - n位数
//123/10 12 12!=0 n++
//12/10 1 1!=0 n++
//1/10 0 为0跳出循环
int n = 1;
int tmp = i;//临时变量
int sum = 0;
while (tmp /= 10)
{
n++;
}
//2.计算每一位的n次方之和 sum
tmp = i;
while (tmp)
{
sum+=pow(tmp%10,n);//pow(?,n)求n得次方
tmp /= 10;
}
//3.比较i==sum
if (i == sum)
{
printf("%d ",i);
}
}
return 0;
}
运行结果: