大数乘法题,计算 2^(n+1) - 1,套用大数乘法模板即可。
#include <iostream>
using namespace std;
const int MAXN = 1005;
int num[MAXN][MAXN];
//初始化大数数组
void init()
{
num[0][0] = num[0][1] = 1;
for (int i = 1; i < MAXN; i++) //大数乘法
{
int carry = 0;
for (int j = 1; j <= num[i - 1][0]; j++)
{
num[i][j] = (num[i - 1][j] * 2 + carry) % 10;
carry = (num[i - 1][j] * 2 + carry) / 10;
}
num[i][0] = num[i - 1][0];
while (carry > 0)
{
++num[i][0];
num[i][num[i][0]] = carry % 10;
carry /= 10;
}
}
}
int main()
{
init();
int N;
while (cin >> N)
{
++N;
for (int i = num[N][0]; i > 1; i--)
{
cout << num[N][i];
}
cout << num[N][1] - 1 << endl;
}
return 0;
}
继续加油。