给定非负整数n,求2n。 输入 一个整数n(0≤n≤31)。 输出 一个整数,即2的n次方。 样例输入 Copy 3 样例输出 Copy 8
时间: 2024-10-16 07:12:11 浏览: 15
一个含有2n个非零元的极小谱 任意符号模式 (2010年)
要计算2的n次方,你可以使用C++中的位移运算符。左移一位相当于乘以2,因此左移n位就相当于乘以2的n次方。以下是一个简单的示例代码:
```cpp
#include <iostream>
using namespace std;
int main() {
unsigned int n;
cout << "Enter a non-negative integer (0 ≤ n ≤ 31): ";
cin >> n;
// Check if the input is within the valid range
if (n > 31) {
cout << "Invalid input. Please enter a value between 0 and 31." << endl;
return 1;
}
unsigned int result = 1u << n;
cout << "2^" << n << " = " << result << endl;
return 0;
}
```
解释:
1. **输入验证**: 确保输入的整数n在0到31之间,因为n超过这个范围会导致未定义行为(在32位系统中,无符号整数最大值为2^32-1,但左移超过31位会导致溢出)。
2. **位移运算**: `1u << n`表示将数字1(无符号)左移n位,这等价于2的n次方。
3. **输出结果**: 打印出2的n次方的值。
阅读全文