什么是水仙花数?
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
例如:1^3 + 5^3+ 3^3 = 153
求十万以内的水仙花数:
#include<stdio.h>
#include <math.h>
void main()
{
int i = 0;
for (i = 1; i < 100000; 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);
//pow () 函数用来求 x 的 y 次幂(次方)
tmp /= 10;
}
if (sum == i)
{
printf("%d是水仙花数\n", i);
}
}
}