无符号长龙不会超越第93个斐波纳契数?

5 c++ algorithm fibonacci

这是我为寻找第n个Fibonacci数而编写的代码:

unsigned long long fib(int n)
{
    unsigned long long u = 1, v = 1, t;

    for(int i=2; i<=n; i++)
    {
        t = u + v;
        u = v;
        v = t;
    }

    return v;
}
Run Code Online (Sandbox Code Playgroud)

虽然算法运行得非常快,但当n> 93时,输出开始变得惊慌失措.我认为/知道这是因为unsigned long long的64位大小.我是C++的新手,但有办法解决这个问题,所以我可以得到像fib(9999)这样的答案吗?

谢谢

Blu*_*eft 14

http://gmplib.org/

GMP是一个免费的库,用于任意精度算术,对有符号整数,有理数和浮点数进行操作.精度没有实际限制,除了机器GMP中可用内存所暗示的那些限制.GMP具有丰富的功能,并且功能具有常规接口.

GMP的主要目标应用是加密应用和研究,互联网安全应用,代数系统,计算代数研究等......

  • 该死的.2秒太慢了. (2认同)