#include
#include
int main()
{
int n,num1,num2,net,sum=0,j,x;
scanf("%d",&n);
num1=pow(10,n-1);
num2=pow(10,n);
for(int i=num1;inet=i;
sum=0;
for(j=0;jfor(int m=0;mx=arr[m];
sum+=pow(x,n);
}
if(sum==i)
printf("%d\n",sum);
}
}
PTA里的题目
#include<stdio.h>
#include<math.h>
int main()
{
int n,num1,num2,net,sum=0,j;
scanf("%d",&n);
num1=pow(10,n-1);
num2=pow(10,n);
for(int i=num1;i<num2;i++)
{
net=i;
sum=0;
for(j=0;j<n;j++)
{
sum+=pow((net%10),n);
net/=10;
}
if(sum==i)
printf("%d\n",sum);
}
}
这里有两个问题
#include <stdio.h>
#include <math.h>
int main()
{
int i, n, tmp, count, sum;
scanf("%d", &n);
for (i = 0; i <= n; i++)
{
//计算数的位数
tmp = i;
count = 1;
while (tmp /= 10)
{
count++;
}
//计算和
tmp = i;
sum = 0;
while (tmp)
{
sum += (int)pow(tmp % 10, count);
tmp /= 10;
}
if (sum == i)
{
printf("%d ", i);
}
}
return 0;
}