国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

c語言 跳臺階問題的解決方法

2020-01-26 16:10:02
字體:
來源:轉載
供稿:網(wǎng)友
題目:一個臺階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少種跳法,并分析算法的時間復雜度。
答:用一個函數(shù)f(n)來表示n級臺階總的跳法。
1、只有1個臺階,則f(1) = 1;
2、有2個臺階,則f(2) = 2;
3、當有n個臺階時,如果第一次跳1級,有f(n-1)種跳法,如果第一次跳2級,有f(n - 2)種跳法,即f(n) = f(n-1) + f(n-2)。
即為Fibonacci序列。
復制代碼 代碼如下:

#include "stdafx.h"
#include <iostream>
using namespace std;
//循環(huán)
int TotalStep(int n)
{
    if (n <= 0)
    {
        return 0;
    }
    else if (1 == n || 2 == n)
    {
        return n;
    }
    int first = 1;
    int second = 2;
    int total = 0;
    for (int i = 3; i <= n; i++)
    {
        total = first + second;
        first = second;
        second = total;
    }
    return total;
}
//遞歸
int RecurTotalStep(int n)
{
    if (n <= 0)
    {
        return 0;
    }
    else if (n == 1 || n == 2)
    {
        return n;
    }
    else
    {
        return RecurTotalStep(n - 1) + RecurTotalStep(n - 2);
    }
}
int _tmain(int argc, _TCHAR* argv[])
{
    cout<<TotalStep(20)<<endl;
    cout<<RecurTotalStep(20)<<endl;
    return 0;
}

運行界面如下:


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 华宁县| 公安县| 安新县| 武陟县| 水富县| 兰州市| 昌邑市| 上杭县| 施秉县| 平远县| 左贡县| 开江县| 彰化县| 泾川县| 磐安县| 吴堡县| 四平市| 阿坝县| 开原市| 宁远县| 乌拉特中旗| 包头市| 福清市| 临澧县| 中江县| 特克斯县| 广灵县| 栾川县| 湘阴县| 三门县| 即墨市| 永春县| 海盐县| 黄梅县| 湖州市| 黄平县| 高尔夫| 绥德县| 大石桥市| 弋阳县| 广汉市|