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

C++中的大数字

如何解决《C++中的大数字》经验,为你挑选了2个好方法。

我试图在C++变量中放置一个大数字.号码是600851475143

我尝试了unsigned long long int但是错误地说它常量太大了.然后我尝试了一个名为BigInt的bigInt库 - > http://mattmccutchen.net/bigint/

问题是我无法编译代码,因为我收到很多关于lib的错误.

未定义的引用`BigInteger :: BigInteger(int)'< - 很多这些.

到目前为止,这是我的代码:

#include "string"
#include "iostream"       
#include "bigint/NumberlikeArray.hh"
#include "bigint/BigUnsigned.hh"
#include "bigint/BigInteger.hh"
#include "bigint/BigIntegerAlgorithms.hh"
#include "bigint/BigUnsignedInABase.hh"
#include "bigint/BigIntegerUtils.hh"
using namespace std;

int main() {

    //unsigned long int num = 13195;
    //unsigned long long int num = 600851475143;
    BigInteger num = 13195;
    int divider = 2;

    //num = 600851475143;

    while (1) {
        if ((num % divider) == 0) {
            cout << divider << '\n';
            num /= divider;
        }
        else
            divider++;

        if (num == 1)
            break;
    }
}

如果我放一个较小的数字并且不使用BigInt lib,那么这个程序运行正常.任何帮助将不胜感激:D



1> Martin York..:

您可以通过后缀L
指定整数文字.您可以使用后缀LL指定整数文字长.

#include 

int main()
{
    long long num = 600851475143LL;

    std::cout << num;
}



2> Robert Gambl..:

数字是600851475143对于long long int来说不是太大但是在使用long long常量时需要使用LL后缀(ULL用于unsigned long long int):

unsigned long long int num = 600851475143ULL;

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