不使用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算。
数据范围:
#include <stdio.h>
(737)#include <math.h>
int main(void){
int num;
while(scanf("%d",&num)!=EOF){
printf("%d\n",(int)pow(2,num));
}
return 0;
} 后来受别人答案启发,可以直接将1向左移动n位,等于是2的n的次方了,对C的理解更深刻#include <stdio.h>
int main(void){
int num;
while(scanf("%d",&num)!=EOF){
printf("%d\n",1<<num);
}
return 0;
} #include<stdio.h>
#include<math.h>
int main(){
double n;
while(scanf("%lf",&n)!=EOF){
printf("%ld\n",(long)pow(2,n));
}
return 0;
}