2的N次方
时间限制(普通/Java) :
1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 2320 测试通过 : 1128
总提交 : 2320 测试通过 : 1128
比赛描述
编程精确计算2的N次方。(N是介于100和1000之间的整数)。
输入
正整数N (100≤N≤1000)
输出
2的N次方
样例输入
200
样例输出
1606938044258990275541962092341162602522202993782792835301376
题目来源
NUPT
#include <iostream>
using namespace std;
int main(){
unsigned char sum[350]={1};
int N=0,i=0,len=1;
cin>>N;
while(N>0){
if(N>=4){
for(i=0;i<len;++i){
sum[i] *= 16;
}
N -= 4;
}
else{
for(i=0;i<len;++i){
sum[i] *= 2;
}
--N;
}
i = 0; //处理进位
while(i<len){
if(sum[i]>=10){
sum[i+1] += sum[i]/10;
sum[i] %= 10;
if(i+1 == len)
len +=1;
}
++i;
}
}
i = len; //输出数字
while(i--){
cout<<(int)sum[i];
}
cout<<endl;
}