介绍:
题目:求出0~100000之间的所有“自幂数”并输出。
想要知道这个数是不是自幂数,就得先知道这个数有几位数,再通过每一位的乘以它所对应的权重的位数次方。求一个数有几位,可以通过不断地 / 10和%10,来统计。至于第二步,我们可以通过一个函数来实现pow函数。下面是这个函数的用法举例:
#include <stdio.h>
#include <math.h>
int main()
{
int i = 0;
for (i = 0; i < 100000; i++)
{
double sum = 0;
double count = 0;
int tmp = i;
while (i)//只要能进来,就说明这个i不等于0
{
count++;//统计位数
i /= 10;
}
i = tmp;//i刚刚变了,要变回来
int n = count;
while (n)//当n等于0时,就意味着是对应的位数
{
sum += pow(i % 10, count);
i /= 10;
n--;
}
i = tmp;//i刚刚变了,要变回来
if (sum == i)
{
printf("%d ", i);
}
}
return 0;
}