利用公式a[i] = 2^i - 1.
#include<iostream>
#include<string.h>
using namespace std;
struct num{
int a[1000];
int s=1;
};
void Mul(num &m){
for(int j=0; j<m.s; j++){
m.a[j] *=2;
}
for(int j=0; j<m.s; j++){
m.a[j+1] += m.a[j]/10;
m.a[j] %= 10;
}
while(m.a[m.s] != 0){
m.a[m.s+1] += m.a[m.s]/10;
m.a[m.s] %= 10;
m.s++;
}
}
int main(){
int m;
cin>>m;
num p;
memset(p.a,0,sizeof(p.a));
p.a[0]=1;
for(int i=0; i<m; i++){
Mul(p);
}
for(int i=0; i<p.s; i++){
if(p.a[i] != 0){
p.a[i]--;
break;
}
p.a[i] = 9;
}
Mul(p);
for(int i = p.s-1; i>=0; i--){
cout<<p.a[i];
}
return 0;
}