这是我为寻找第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;
}
虽然算法运行得非常快,但当n> 93时,输出开始变得惊慌失措。我认为/知道这是因为unsigned long long的64位大小。我是C ++的新手但有办法解决这个问题,所以我可以得到像fib(9999)这样的答案吗?
谢谢
答案 0 :(得分:14)
GMP是一个用于任意精度算术的免费库,对有符号整数,有理数和浮点数进行操作。精度没有实际限制,除了机器GMP中可用内存所暗示的那些限制。 GMP具有丰富的功能,并且功能具有常规接口。
GMP的主要目标应用是加密应用和研究,互联网安全应用,代数系统,计算代数研究等......
答案 1 :(得分:4)