0
点赞
收藏
分享

微信扫一扫

OpenJ_Bailian - 2809 计算2的N次方

OJ地址:​​https://vjudge.net/problem/OpenJ_Bailian-2809​​

任意给定一个正整数N(N<=100),计算2的n次方的值。

Input

输入一个正整数N。

Output

输出2的N次方的值。

Sample Input

5

Sample Output

32

Hint

高精度计算

思路:

如果使用int或者long long 来做这道题的话,会超出范围。具体参考下图个数据类型的范围,或者​​C语言变量类型及其表示范围。​​

可以直接使用math头文件下的pow函数,但pow函数的返回值为double,所以需要在输出的时候限制保留整数,即小数点后是零位("%.0lf")。

 

 

程序代码:

错误:

int

#include<cstdio>
#include<cmath>
int main(){
int n;
scanf("%d",&n);
int re=1;
for(int i=0;i<n;i++){
re*=2;
}
printf("%d\n",re);
return 0;
}

long long

#include<cstdio>
#include<cmath>
int main(){
int n;
scanf("%d",&n);
long long re=1;
for(int i=0;i<n;i++){
re*=2;
}
printf("%lld\n",re);
return 0;
}

 

正确:

double

#include<cstdio>
#include<cmath>
int main(){
int n;
scanf("%d",&n);
double re=1;
for(int i=0;i<n;i++){
re*=2;
}
printf("%.0lf\n",re);
return 0;
}

使用pow

#include<cstdio>
#include<cmath>
int main(){
int n;
scanf("%d",&n);
double re = pow(2,n);
printf("%.0lf\n",re);
return 0;
}

运行结果:

OpenJ_Bailian - 2809  计算2的N次方_i++


举报

相关推荐

0 条评论