求出0~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身
如 : 153=1 ^ 3+5 ^ 3+3 ^ 3,则153是一个“水仙花数”。
#include<math.h>
int main()
{
int i = 0;
for (i = 1;i <= 100000;i++)
{
//确定n位数
int n = 0;
int tmp = i;
while (tmp!=0)
{
tmp /= 10;
n++;
}
//判断n次方之和是否等于该数本身
int sum = 0;
tmp = i;
while (tmp!=0)
{
sum += pow(tmp % 10, n);//几次方函数
tmp /= 10;
}
if (sum == i)
{
printf("%d ", i);
}
}
return 0;
}
函数几次方求法用pow(2,n) 解释为2^n