总时间限制: 1000ms 内存限制: 65536kB

描述

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

输入输入一个正整数N。输出输出2的N次方的值。样例输入

5


样例输出

32


提示高精度计算



1 #include <stdio.h>
2 int main(int argc, char *argv[])
3 {
4 int n,i,j;
5 int a[105]={0};//表示大整数,低位在前,高位在后
6 int len,c; //表示大整数的位数
7 scanf("%d",&n);//输入正整数n(n<=100),计算2^n
8 a[0]=1;//初始化的值,表示2^0,用于累乘
9 len=1;
10
11 for(i=1;i<=n;i++)//计算2的i次方:每次乘以一个2
12 {
13 c=0;//各个位乘以2时的进位。每一轮开始前要清空
14 for(j=0;j<len;j++)
15 {
16 a[j]=a[j]*2+c;
17 c=a[j]/10;
18 a[j]=a[j]%10;
19 }
20 if(c!=0)//向更高位进位
21 {
22 a[j]=c;
23 len++;
24 }
25 }
26 for(--len;len>=0;len--)
27 {
28 printf("%d",a[len]);
29 }
30 printf("\n");
31 return 0;
32 }