走樓梯 遞迴

2021-08-14 14:57:22 字數 771 閱讀 2195

描述

樓梯有n(100 > n > 0)階台階,上樓時可以一步上1階,也可以一步上2階,也可以一步上3階,程式設計計算共有多少種不同的走法。

輸入輸入的每一行包括一組測試資料,即為台階數n。最後一行為0,表示測試結束。

輸出每一行輸出對應一行輸入的結果,即為走法的數目。

樣例輸入12

340樣例輸出12

47解析:類似於斐波那契數列的遞迴做法。關鍵在於找到其遞迴規則。

如果是1階樓梯,共有1種走法。

如果是兩階樓梯,共有 1 1、2兩種走法。

如果是3階樓梯,共有111、12、21、3這4種走法。

如果是4階樓梯,可以從1階直接上到4階或者從2階上到4階或者從3階上到4階,共有f(1)+f(2)+f(3)種走法。

若是5階樓梯,可分別從2階、3階、4階直接上到5階,共f(2)+f(3)+f(4)中走法。 ……

所以我們得到以下遞迴序列:  f(n) = f(n-1) + f(n-2) + f(n-3);

//geeksun 2018.1.13

#include #include int function(int step);

int main()

printf("%d\n",function(n));

}return 0;

}int function(int step)

else if(step == 2)

else if(step == 3)

else

}

遞迴 走樓梯

例題 爬樓梯樹老師爬樓梯,他可以每次走1級或者2級,輸入樓梯的級數,求不同的走法數例如 樓梯一共有3級,他可以每次都走一級,或者第一次走一級,第二次走兩級,也可以第一次走兩級,第二次走一級,一共3種方法。輸入 輸入包含若干行,每行包含乙個正整數n,代表樓梯級數,1 n 30輸出不同的走法數,每一行輸...

遞迴 樓梯的走法

題目描述 假設有n階樓梯,小明一次可以選擇走1階,也可以選擇走2階,問多少種走法。比如有5階台階,共有8種走法。1 1 1 1 1 1 1 1 2 1 1 2 1 1 2 1 1 1 2 2 2 1 1 1 2 1 2 2 2 1 要求使用遞迴解法。輸入描述 輸入n,表示n階樓梯,1 n 40 輸出...

關於走樓梯的遞迴演算法

題目 乙個共有20個台階的樓梯,從下面走到上面。一次只能邁乙個台階或兩個台階,並且不能後退,走完這個樓梯共有多少種方法。分析 1 步台階只有1種走法 1 2步台階2種 11 2 3步台階有3種 111 12 21 4 步台階有5種 1111 112 121 211 22 5 步台階有8種 11111...