迅雷 二的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;
}
Last modification:January 12th, 2020 at 12:49 am
如果觉得我的文章对你有用,请随意赞赏