水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。
求出0~100000之间的所有“水仙花数”并输出:
#include<stdio.h>
#include<math.h>
int main()
{
int places[6] = { 0 };//存放1-100000的各数的十/百等位数
int i = 0;
int rem = 0;
int j = 0;;
int a = 0;
for (i = 1; i <= 100000; i++)
{
int sum = 0;
int flag = 0; //计算位数
a = i;
while (a)
{
rem = a % 10;
places[flag] = rem;
a /= 10;
flag++;
}
for (j = 0; j < flag; j++)
{
sum += pow(places[j], flag);
}
if (sum == i)
printf("%d ", i);
}
return 0;
}