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;
}

总结:

简单位运算的使用。

全部评论

相关推荐

10-28 14:42
门头沟学院 Java
watermelon1124:因为嵌入式炸了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务