一、什么是水仙花数
比如一个三位数,它的个位立方+十位立方+百位立方=这个数它本身,这样的数就称为水仙花数
二、思路分析:
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);
}
}
}