当前位置:  开发笔记 > 编程语言 > 正文

c ++如何存储大小为2 ^ 1 000 000的变量和字符串?

如何解决《c++如何存储大小为2^1000000的变量和字符串?》经验,为你挑选了1个好方法。

我想解决一个练习.它说我需要输出2个数字的最后数字,这个数字是2 n(2 ^ n)的幂.

但输入是n=1000000.

代码使用较低的值,但当输入为1 000 000时,数字太大.

我的代码:

#include 
#include 
#include  

using namespace std;

int main()
{
    unsigned long long n;
    cin >> n;
    unsigned long long sk = pow(2, n);

    if (sk < 1000) cout << sk;

    else {
        string ats = to_string(sk);  // converting the number to string
                                     // so I could output 3 last digits
                                     // probably not the best solution
                                     // for this exercise
        n = ats.length();
        for (unsigned long long i = n - 3; i < n; i++) {
            cout << ats[i];
        }
    }
    return 0;
}

谢谢您的帮助.



1> Robert Kock..:

尝试类似的东西:

将结果初始化为1

在从1到n的循环中:

结果*= 2

结果%= 1000

这是因为最后3位的结果不依赖于更大的数字

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有