“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153每一位的三次方加起来为153,则153是一个“水仙花数”。
#include <stdio.h>
#include<math.h>
int cc(int b, int c)
{
int k;
k = b % 10;
if (b == 0)
{
return 0;
}
return cc(b / 10, c) + pow(k,c);//递归算出每一位的n次方和
}
int SXH(int a)
{
int k=a;
int c=0;
while (k)
{
c++;
k= k / 10;
}
if (cc(a, c) == a)//判断是否为水仙花数
{
return 1;
}
return 0;
}
int main()
{
int i;
for (i = 0; i <= 10000; i++)
{
if (SXH(i) == 1)
{
printf("%d\n", i);
}
}
}