所以我寫了一個遞歸程序,詢問用戶現在想要執行的許多斐波那契數。我遇到的問題是,在第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