所以我写了一个递归程序,询问用户现在想要执行的许多斐波那契数。我遇到的问题是,在第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
做什么样的变化,我需要以使它改变 - #对真实的数字?
另外,最好使用'unsigned'类型来处理那些不能被是负面的。 – Xeo 2011-03-31 17:08:25
顺便说一句,考虑将负面表达的确切原因添加到您的答案,这使得它更完整。 – Xeo 2011-03-31 17:15:33
@Xeo不依据大多数专家。无符号通常被理解为意味着位操作或调制算术是必需的。 – 2011-03-31 17:18:10