方法一:循环法
不断地乘以2,循环i次
int main() {int a, i, c =1;//注意要初始化为1而不是0scanf("%d", &i);for (a = 1; a <= i; a++){c = c * 2;}printf("%d", c);return 0;}
方法二:左移法
一个数它左移,左移一位的话就相当于是乘二,左移两位的话就相当于是乘四,左移三位的话就相当于是乘八,那就是相当于是。所以一位的话相当于是乘二的一次方,所以两位的话就是相当于乘二的二次方。
#include int main(){int n = 0;while (scanf("%d", &n) != EOF){printf("%d\n", 1 << n);}return 0;}
方法三:递归法
2^n=2*2^(n-1)=2*2*2^(n-2)……以此类推
int pow(int n){if (n <= 0)return 1;elsereturn 2 * pow(n-1 );}int main(){int n = 1;scanf("%d",&n);int ret = pow(n);printf("%d", ret);return 0;}