問題の説明
長さN(1 <= N <= 10)の床があり、2つの異なるタイルが与えられます。1つは長さ1、もう1つは長さ2で、数は無制限です。長さNのこの床をカバーするには、いくつの異なる舗装方法が必要ですか?
たとえば、長さが4の地面には、次の5種類の舗装方法があります
。4= 1 + 1 + 1 + 1 + 1
4 = 2 + 1 + 1
4 = 1 + 2 + 1
4 = 1 + 1 + 2
4 = 2 + 2
プログラミングは再帰的な方法を使用して上記の問題を解決します。
たとえば、長さが4の地面には、次の5種類の舗装方法があります
。4= 1 + 1 + 1 + 1 + 1
4 = 2 + 1 + 1
4 = 1 + 2 + 1
4 = 1 + 1 + 2
4 = 2 + 2
プログラミングは再帰的な方法を使用して上記の問題を解決します。
入力フォーマット
床の長さを表すNは1つだけです
出力フォーマット
すべての異なるタイル敷設方法の総数を表す数値を出力します
入力例
4
出力例
5
より複雑に考えると、脳がなくても再発できます。
1 #include <bits / stdc ++。h> 2 名前空間std を使用 。 3 int fun(int n){ 4 if(n == 1 ){ 5 return 1 ; 6 } 7 if(n == 2 ){ 8 return 2 ; 9 } 10 return fun(n- 1)+ fun(n- 2 ); 11 } 12 int main(){ 13 int n; 14 cin >> n; 15 cout << fun(n)<< endl; 16は 0を返し ます。 17 }