#include<iostream>usingnamespace std;intmain(){int n, h,sum=0;
cin >> n;int a[10];for(int i =0; i <10; i++)a[i]=pow(i, n);int min =pow(10, n -1);int max =pow(10, n)-1;for(int i = min; i <= max; i++){
h = i;while(h){int b = h %10;
sum += a[b];
h =h/10;}if(sum == i)cout << i << endl;
sum =0;}}
N个数求和
#include<iostream>usingnamespace std;longlong a[101], b[101];//计算最大公约数intgcd(int x,int y){if(x % y ==0)return y;elsegcd(y, x % y);}intmain(){int n;
cin >> n;//cin会对'/'有影响,所以用scanffor(int i =0; i < n; i++){scanf("%lld/%lld",&a[i],&b[i]);}//x记录第一个的分子,y记录第一个的分母int x = a[0];int y = b[0], c;for(int i =1; i < n; i++){//通分
x = x * b[i]+ a[i]* y;
y = y * b[i];
c =gcd(x, y);//化简if(c){
x = x / c;
y = y / c;}}//如果分子为0,输出0if(x ==0&& y !=0)cout <<'0';else{//z为整数部分int z = x / y;//x为分式的分子,y为分母
x = x % y;if(z !=0&& x !=0)cout << z <<' '<< x <<'/'<< y;elseif(z !=0&& x ==0)cout << z;else cout << x <<'/'<< y;}}