不使用累计乘法的基础上,通过移位运算(<<)实现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; }