C++:N阶楼梯上楼问题
生活随笔
收集整理的這篇文章主要介紹了
C++:N阶楼梯上楼问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
N階樓梯上樓問題:一次可以走兩階或一階,問有多少種上樓方式。(要求采用非遞歸)
輸入描述:
輸入包括一個整數N,(1<=N<90)。
輸出描述:
可能有多組測試數據,對于每組數據,
輸出當樓梯階數是N時的上樓方式個數。
示例1
輸入
4
輸出
5
解題思路
設f(n)表示走法隨階梯數量n變化的函數
找規律:
1級階梯f(1) = 1種走法
2級階梯f(2) = 2種走法
3級階梯f(3) = f(2) + f(1) = 3種走法
4級階梯f(4) = f(3) + f(2) = 5種走法
…
n級階梯f(n) = f(n - 1) + f(n - 2)種走法
解題代碼
#include <iostream> #include <cstdio> using namespace std; typedef long long ll; ll f[100];//用long long存儲上樓方式總數,避免數據溢出int main(){ f[1] = 1, f[2] = 2;//打表用空間換時間 for(int i = 3; i <= 90; i++) f[i] = f[i - 1] + f[i - 2];int n;//樓梯階數//輸入多組數據while(~scanf("%d", &n)){printf("%lld\n", f[n]);//輸出}return 0; }總結
以上是生活随笔為你收集整理的C++:N阶楼梯上楼问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 终局思维
- 下一篇: 初级计算机操作员职业资格证书,计算机操作