| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 440374 | 方相宜 | 【C6-4】求2的n次方 | C++ | 通过 | 100 | 1 MS | 252 KB | 1005 | 2026-05-11 19:55:55 |
#include <iostream> #include <cstring> using namespace std; int main() { int n; cin >> n; // 输入n // 用数组存储大整数,初始值为1(2^0=1) int num[100] = {0}; num[0] = 1; // 记录当前大整数的有效位数,初始1位 int len = 1; // 循环乘以2,共乘n次 for (int i = 0; i < n; i++) { int carry = 0; // 进位,初始为0 // 逐位相乘 for (int j = 0; j < len; j++) { int temp = num[j] * 2 + carry; num[j] = temp % 10; // 当前位保留余数 carry = temp / 10; // 更新进位 } // 如果最后还有进位,新增一位 while (carry) { num[len] = carry % 10; carry /= 10; len++; } } // 倒序输出数组(因为低位存在数组前面) for (int i = len - 1; i >= 0; i--) { cout << num[i]; } cout << endl; return 0; }