描述
编程精确计算2的N次方。(N是介于100和1000之间的整数)。
输入
正整数N (100≤N≤1000)
输出
2的N次方
样例输入
200
样例输出
1606938044258990275541962092341162602522202993782792835301376
题目来源
NUPT
#include "stdio.h"
#include "string.h"
int Mutiply2(char B[])
{
unsigned i=0;
while(B[i]!='#')
{
B[i]=B[i]*2;
++i;
}//数组中的每个元素乘以2
for(i=0;B[i]!='#';++i)
{
if(B[i]>=10)
{
B[i]=B[i]%10;
if(B[i+1]=='#')
{
B[i+2]='#';
B[i+1]=1;
}
else
{
B[i+1]+=1;
}
} //对大于10的进行取余运算 并进位
}
return 0;
}
int main()
{
char B[1101];
int N;
int i;
for(i=0;i<1101;++i)
{
B[i]=0;
}
B[0]=1;
B[1]='#';//以#做为结束字符
scanf("%d",&N);
for(i=1;i<=N;++i)
{
Mutiply2(B);
}
i=0;
while(B[i]!='#')
{
++i;
}
--i;
while(i>=0)
{
printf("%d",B[i]);
--i;
}
return 0;
}
char B[]={1,2,0,4,'\0'};
len=strlen(B);//len=2
char B[]={1,2,3,4,'\0'};
len=strlen(B);//len=4 //所以这里用#做为结束符