计算2的N次方(高精度乘法)
求位数:$\log_{10} {2^N}$
使用数组来存储:数组中的每一位就是数字中的每一位
#include <iostream>
using namespace std;
const int N = 3010;
//位数+10防止数组溢出
int main(){
int a[N] = {1};
int n;
cin >> n;
int m = 1;
//m为位数
for(int i=0; i<n; i++){
int t = 0;
//t为进位
for(int j=0; j<m ;j++){
t += a[j] * 2;
a[j] = t % 10;
t = t / 10;
}
if(t) a[m++] = 1;
//进一位
}
//输出
for(int i = m - 1; i>=0; i--) cout << a[i];
cout << endl;
return 0;
}