【题目描述】
任意给定一个正整数N(N<=100),计算2的n次方的值。
【输入】
输入一个正整数N。
【输出】
输出2的N次方的值。
【输入样例】
5
【输出样例】
32
【解题思路】
在高精度乘法基础上稍加修改,外层循环控制乘2的次数,内层循环控制高精度乘法。
【题解代码】
#include <bits/stdc++.h>
using namespace std;
int n,a[105];
int main(){
a[0] = 1;a[1] = 1;
cin >> n;
for (int i=1;i<=n;i++){
int temp=0;
for (int j=1;j<=a[0];j++){ //高精度乘法
a[j] = a[j]*2+temp;
temp = a[j]/10;
a[j] %= 10;
}
a[a[0]+1] += temp;
while (a[a[0]+1] != 0) a[0]++; //修正a的位数
}
for (int i=a[0];i>=1;i--) cout << a[i];
return 0;
}