描述
編程精確計算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 //所以這裏用#做爲結束符