总时间限制: 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 }
另一篇文章:http://www.cnblogs.com/huashanqingzhu/p/3596941.html