問題
木登り階段先生は、彼は、階段のシリーズを入力し、毎回レベル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;
}