大数乘法题,计算 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;
}
继续加油。