易得公式 2^(n+1) - 2 ,本想直接用模板,一想很久没写高精度,练练手,果然生疏了....o(╯□╰)o
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int n,ans[100],len;
bool flag = true;
while(cin>>n)
{
if(!flag) cout<<endl;
flag = false;
memset(ans,0,sizeof(ans));
ans[0] = 1;
len = 1;
for(int i=0;i < n+1;++i)
{
//考虑清楚顺序,先在每一个数位上乘以2,然后再考虑是否进位,一开始放在同一个循环里,结果一团糟
for(int j = 0;j < len;++j)
ans[j] *= 2;
for(int j = 0;j < len;++j)
{
if(ans[j] > 9)
{
ans[j + 1] += ans[j]/10;
ans[j] %= 10;
}
}
if(ans[len]) len++;
}
ans[0] -= 2;
while(!ans[len]) len --;
for(int i = len;i >= 0;i--)
cout<<ans[i];
cout<<endl;
}
return 0;
}