非常长的C++类型,我可以为大型计算创建自己的非常长的类型吗?

1 c++ recursion types numbers long-integer

我将向您展示一个非常简单的示例,非常用递归调用阶乘计数,但有一个非常重要的细节,让我们看看我的代码,然后我会写出我的问题.

#define PASSWORD_MAX 0x28

typedef unsigned long long longtype;

#include <iostream>

using namespace std;


longtype f(longtype n)
{
    return (n <= 1) ? 1 : f(n - 1) * n;
};

void main(void)
{
    for(longtype i = 0; i <= PASSWORD_MAX; i++)
    {
        if(f(i) != 0) cout << i << " -> " << f(i) << endl;
    };
};
Run Code Online (Sandbox Code Playgroud)

在这段代码之后,我得到了下一个结果:http://pastebin.com/ZHPtJBZ7

最大结果是可读的:22 - > 17196083355034583040

从23到最后,根据我的理解,只有"e"电源中的数字,如何从23完全打印值,而不是缩短格式?

谢谢,最诚挚的问候!

Cha*_*via 5

您可以使用整数向量创建自己的非常长的整数类型.但是你需要为你的长整数类型实现算术运算,这当然不是一件容易的事.最好使用像GMP这样的大整数库