不使用累计乘法的基础上,通过移位运算(<<)实现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; }
#include <stdio.h> int main() { int n = 0; scanf("%d", &n); while (n >= 0 && n <=31) { int sum = 0; sum = 1 << n; printf("%d", sum); break; } return 0; }