2015-04-04 38 views
-2

我開始在CPP中編碼,我想實現斐波那契算法。CPP - 誤解變量行爲

你能解釋一下爲什麼我輸錯了嗎?


#include <iostream> 
using namespace std; 
int main() 
{ 
    double a; 
    cin >> a; 
void fibbo(double a) 
{ 
    double n = 1; 
    double m = 0; 
    while(n<a){ 
    n = n+m; 
     m=n; 
    cout << n << "<" << a << endl; 
    } 
} 
} 

這裏是一例,而 「一」 等於100

enter image description here

+0

提示:你是否將'm'設置爲'n'的舊值或新值?你應該把它設置爲舊的還是新的? – Angew 2015-04-04 12:33:18

+1

在你的腦海裏(或者用一個調試器)經歷它幾次,它會變得非常明顯。 – juanchopanza 2015-04-04 12:34:18

+0

當然!謝謝 :) – 4EACH 2015-04-04 12:46:54

回答

1

你的循環是用這樣的方式,即mn都是一樣的。寫

void fibbo(double a) 
{ 
    double n = 1; 
    double m = 0; 
    while (n<a){ 
     double t = n + m; 
     m = n; 
     n = t; 
     cout << n << "<" << a << endl; 
    } 
} 

改爲。