再帰C ++なしのフィボナッチ数列

タイトル説明

誰もがフィボナッチ数列を知っています。整数nを入力する必要があります。フィボナッチ数列のn番目の項を出力してください(0から始まり、0番目の項は0です)。

n <= 39

 私は最初に再帰的方法を使用し、次に残業を使用してから、次の解決策を使用しました。

class Solution {
public:
    int Fibonacci(int n) {
       if(n==0)
           return 0;
        if(n==1)
            return 1;
        int a=0,b=1,c=0;
        for(int i=2;i<=n;i++){
            c=a+b;
            a=b;
            b=c;
        }
        return c;
    }
};

再帰は本当にクールに見えますが、従来の解決策には負けません。従来の解決策は、最もよく理解され、問題を解決します。

c = a + b;

a = b;

b = c;

この構造は最も明確で、フィボナッチ数列の規則を完全に反映しています。

n = 2の場合、次の項目は0 + 1であり、結果2を出力し、数列は0、1、2です。これはforループで1回実行する必要があります。

n = 3の場合、次の項目は1 + 2であり、結果3を出力します。数列は0、1、2、3です。これはforループで2回実行する必要があります。

n = 4の場合、次の項目は2 + 3であり、結果5を出力します。数列は0、1、2、3、5です。これはforループで3回実行する必要があります。

nは2から始まるため、満足するには2から始める必要があります。

おすすめ

転載: blog.csdn.net/sinat_39416814/article/details/105117656