一、什么是水仙花数

比如一个三位数,它的个位立方+十位立方+百位立方=这个数它本身,这样的数就称为水仙花数

二、思路分析:

1、使用for循环查找遍历从0到10000的所有数;

2、计算每个数的位数

3、计算每个数每一位的n次方之和是否为本身,是就为水仙花数

#include<stdio.h>

#include<math.h>

int main()

{

int i = 0;

for (i = 123; i < 10001; i++)

{

 int temp = 0,n=1, sum = 0;

 temp = i;

 //求i的位数

 while (temp /= 10)

 {

  n++;

 }

 //计算每一位的n次方之和

 temp = i;

 while (temp)

 {

  sum += pow(temp % 10, n);// 计算每一位的n次方之和

  temp = temp / 10;

 }

 //判断每一位之和是否为它本身

 if (sum == i)

 {

  printf("水仙花数:%d\n",i);

 }

}

}