タイトル説明
誰もがフィボナッチ数列を知っています。整数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から始める必要があります。