階段(再帰) - 学習アルゴリズム

問題

木登り階段先生は、彼は、階段のシリーズを入力し、毎回レベル1またはレベル2に行くことができる
動きの異なる多数見つけ
、彼は常に行くために1、または最初の時間に行くことができ、階段、3の合計:などを
レベル2秒散歩、あなたは二回、行くために、初めて2を行くことができる
3つの方法の合計。

エントリー

入力ラインを複数備え、Nの整数正を含む各代表シリーズ階段,. 1
<= N <= 30を出力する異なる移動の数、入力線に対応する各行

輸出

移動の異なる数、出力の入力線に対応する各行

サンプル入力

5
8
10

サンプル出力

8
34
89

思考

N =ウォーク階段
一度した後、N-1 +ステージステップ移動する
2人の行く、N-2レベルのステップ移動
(N(N)= F F -1)+ F( N-2)
の境界条件:N- <0
、N 0 = 1。

コード:


#include <iostream>
using namespace std;
int N;
int louti(int n)
{
if( n < 0)
return 0;
if( n == 0 )
return 1;
return louti(n-1) + louti(n-2);
}
int main()
{
while(cin >> N) {
cout << louti(N) << endl;
}
return 0;
}
公開された79元の記事 ウォンの賞賛133 ・は 40000 +を見て

おすすめ

転載: blog.csdn.net/weixin_45822638/article/details/105028879