2的n次方计算
2的n次方计算
http://www.nowcoder.com/questionTerminal/35a1e8b18658411388bc1672439de1d9
分析:
题意中已经分析的很清楚表明使用位运算求解,对于整数而言向左移动一位则*2,故计算多少次方便可以左移多少位,另一种解法是使用库函数pow注意该函数的返回值为双精度类型需要接取小数点后的位数。
题解1:
#include <bits/stdc++.h> using namespace std; int main() { int a = 0; while(scanf("%d", &a) != EOF) { //循环读入之后调用pow函数计算结果,pow定义在cmath头文件 printf("%.lf\n", pow(2,a)); } return 0; }
题解2:
#include <bits/stdc++.h> using namespace std; int main() { int a = 0; while(scanf("%d", &a) != EOF) { //高效的实现可以使用左移,移动a位即为2的a次方 printf("%d\n", 1 << a); } return 0; }
总结:
简单位运算的使用。