迅雷 二的N次方 模拟
题目描述
对于一个整数N(512 <= N <= 1024),计算2的N次方并在屏幕显示十进制结果。
输入描述:
输入一个整数N(512 <= N <= 1024)
输出描述:
2的N次方的十进制结果
示例1
输入
512
输出
13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 371;
int num[maxn];
void calculation(int n);
int main()
{
int n;
while(cin>>n)
{
memset(num,0,sizeof(num));
calculation(n);
}
return 0;
}
void calculation(int n)
{
num[0]=1;
while(n--)
{
int d=0;
for(int i=0;i<maxn;i++)
{
num[i]*=2;
num[i]+=d;
if(num[i]>=10)
{
num[i]-=10;
d=1;
}
else
{
d=0;
}
}
}
int i;
for(i=maxn-1;i>=0;--i)
{
if(num[i]!=0)
{
break;
}
}
for(;i>=0;--i)
{
cout<<num[i];
}
cout<<endl;
}