核心思想:
1.创建变量 tmp 来储存 i 的值,应为i需要生成0 ~ 100000间的数,i 值不能变
2.创建 n = 1(一个数至少有1位),来计算tmp的位数;
3.tmp = i(不让tmp值改变),
4.使用pow()库函数 - 需引用 #include <math.h>
5.创建ret = 0
6.使用while(tmp)循环,来计算ret相加每一位n次方的值
7.ret += pow(tmp % 10,n); tmp /= 10
代码实现:
#include <stdio.h>
#include <math.h>
int main()
{
int i = 0;
for(i = 0; i <= 100000; i++)
{
int tmp = i;
int n = 1;
while(tmp /= 10)
{
n++;
}
tmp = i;
int ret = 0;
whil![请添加图片描述](https:
e(tmp)
{
ret += pow(tmp % 10, n);
tmp /= 10;
}
if(ret == i)
{
printf("%d ",i);
}
}
return 0;
}