只有通过把pow函数,自己改写成p函数,才能解决超时问题
在这里插入代码片
#include<stdio.h>
int p(int,int);
int pan(int,int);
int main(){
int n;
scanf("%d",&n);
for(int i=p(10,n-1);i<p(10,n);i++){
if(pan(i,n)){
printf("%d\n",i);
}
}
}
int pan(int number,int n){
int sum=0;
int a=number;
while(a>0){
int t=a%10;
sum+=(int)p(t,n);
a=a/10;
}
if(sum==number){
return 1;
}else
return 0;
}
int p(int a,int b){
int t=a;
for(int i=1;i<b;i++){
a*=t;
}
return a;
}