必威体育Betway必威体育官网
当前位置:首页 > IT技术

2的N次方-迅雷校招

时间:2019-06-21 01:43:10来源:IT技术作者:seo实验室小编阅读:78次「手机版」
 

2的n次方

[编程题] 2的N次方

时间限制:1秒

空间限制:131072K

对于一个整数N(512 <= N <= 1024),计算2的N次方并在屏幕显示十进制结果。

输入描述:

输入一个整数N(512 <= N <= 1024)

输出描述:

2的N次方的十进制结果

输入例子1:

512

输出例子1:

1340780792994259709957402499820584612747936582059239337772356144372176403007354697680187429816 6903427690031858186486050853753882811946569946433649006084096

思路

  • 用vector倒着存入每位数
  • 1 存入vector
  • n次循环,每次每个数组里的数*2
  • 处理数组,有进位的进位,%10
  • 倒过来输出

#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
vector<int> n;
int main()
{
    int num;
    auto it = n.begin();
    while (cin >> num)
    {
        n.clear();
        n.push_back(1);
        for (int i = 0; i < num; i++)
        {
            for (it = n.begin(); it != n.end(); it++)
            {
                *it *= 2;//数组里每个数*2
            }
            for (int i = 0; i < n.size(); i++)//处理>10的数
            {
                if (n[i] >= 10) 
                {
                    if (i != n.size() - 1)
                    {
                        n[i + 1] += 1;
                    }
                    else
                    {
                        n.push_back(1);//n[i]*2最多18,所以是1
                    }
                    n[i] %= 10;
                }
            }
        }

        auto it2 = n.rbegin();
        for (; it2 != n.rend(); it2++)
            cout << *it2;
        cout << endl;
    }
    return 0;
}

相关阅读

计算2的n次方

计算2的N次方时间限制: 1000ms内存限制: 65536kB描述任意给定一个正整数N(N<=100),计算2的N次方的值。输入输入只有一个正整数N。

分享到:

栏目导航

推荐阅读

热门阅读