【问题标题】:Declare a Big Integer in C++ [duplicate]在 C++ 中声明一个大整数 [重复]
【发布时间】:2015-08-07 00:50:59
【问题描述】:

我试图在 C++ 中运行这个算法以获得一个大数字

#include<iostream>

using namespace std;
int main()
{
    int num,factorial=1;
    cout<<" Enter Number To Find Its Factorial:  ";

    cin>>num;

    for(int a=1;a<=num;a++)
    {
       factorial=factorial*a;
    }

    cout<<"Factorial of Given Number is ="<<factorial<<endl;
    return 0;
}

如何像在 Java 中那样声明 Big Integer 而不是 int?

【问题讨论】:

    标签: c++ factorial


    【解决方案1】:

    C++ 标准库中不支持大整数。大数运算的常见选择是GMP。下载并安装库后,在您的代码中,您将 #include &lt;gmpxx.h&gt; 并声明 mpz_class factorial 而不是 int factorial,然后链接到 GMP。

    可以在 IDE 中通过在编辑器的编译设置中添加 GMP 来完成与 GMP 的链接;或将-lgmp 添加到您的编译命令(例如g++clang++)。

    【讨论】:

      【解决方案2】:

      c++ 标准库中没有任意精度的算术。您需要自己使用整数数组来实现它,或者使用现有的非标准库。

      【讨论】:

      • 所以如果我想声明一个大整数,我只需在我的阶乘类中添加这些库之一?即 #include 还是什么?
      • @BehrouzHedayati 是的,您需要包含定义您要使用的类型的标题。
      【解决方案3】:

      为了方便,请尝试 unsigned long long int

      我只是想留下评论,但我的评论声望很低..

      【讨论】:

        【解决方案4】:

        对于任意精度的整数没有标准支持。但是,有一些可用于处理大整数:

        【讨论】:

          猜你喜欢
          • 2021-08-18
          • 2019-10-26
          • 2010-11-16
          • 2014-01-07
          • 2011-10-19
          • 2021-04-19
          • 2010-11-08
          • 2021-08-11
          • 1970-01-01
          相关资源
          最近更新 更多