【题目描述】
任意给定一个正整数N(N≤100),计算2的n次方的值。
【输入】
输入一个正整数N。
【输出】
输出2的N次方的值。
【输入样例】
5
【输出样例】
32
【参考程序】
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int main() {
int n, s, len, a[10001]; // len记录数组a的实际长度
scanf("%d", &n);
a[1] = 1; // 个位数初始化为1
s = 0; // s记录实际的位数
len = 1; // len记录数位
for (int i=1; i<=n; i++) { // 进行n次连乘
for (int j=1; j<=len; j++) {
a[j] *= 2; // 每个位数都乘以2
}
for (int j=1; j<=len; j++) {
s = 0;
if (a[j] > 9) { // 判断当前的数是否需要进位
a[j+1] += a[j] / 10; // 进位
a[j] %= 10; // 只留下个位
s = max(s, j+1); // s记录实际位数
}
}
len = max(len, s); // 判断当前的数的位数,避免多余地乘
}
for (int i=len; i>=1; i--) {
cout << a[i];
}
return 0;
}