【题目描述】
给定非负整数n,求2n的值,即2的n次方。
【输入】
一个整数n。0≤n<31。
【输出】
一个整数,即2的n次方。
【输入样例】
3
【输出样例】
8
【程序分析】
学会用移位运算,通过左移和右移,实现连续乘以2和连续除以2的效果
【程序实现】
用移位运算实现:
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
// 使用位运算:2的n次方等于1左移n位
int result = 1 << n;
printf("%d\n", result);
return 0;
}
用pow函数实现:
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
// 使用pow函数计算2的n次方
int result = (int)pow(2, n);
printf("%d\n", result);
return 0;
}
两种方法比较:
- 位运算:更高效,直接使用CPU的移位指令
- pow函数:需要浮点数运算和类型转换,效率较低
232

被折叠的 条评论
为什么被折叠?



