所以我写了一个递归程序,现在询问用户他们想要执行的许多斐波那契数。我遇到的问题是,在第 45 个数字之后,它给了我一个带有“-”的数字,并且它的数字不适合序列。我怎样才能改变它给我正确的号码?这是执行计算的代码的递归部分:
void fibonacci (int a, int b, int n, int count)
{
if(n < count)
{
cout<<a+b<<endl;
fibonacci(b, a+b, n+1, count);
}
}
这是序列的输出:
How many numbers do you want the Fibonacci sequence to process: 50
The starting numbers for the sequence are: 0, 1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
102334155
165580141
267914296
433494437
701408733
1134903170
1836311903
-1323752223
512559680
-811192543
-298632863
-1109825406
我需要进行哪些更改才能将 -# 更改为实数?