优化版
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int N,i,p,t,sum,n,m,k;
cin >> N;
i = pow(10,N-1);
p = 10*i;
for(;i < p; i++){
for(sum=0,t=i; t>0; t/=10){
m=N; k=1;
n = t%10;
while(m--) k*=n;
sum+= k;
}
if(sum==i){
cout << i << endl;
if (sum%10 == 0)
cout << ++i << endl;
}
}
return 0;
}
题目放出来,