欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用C++遞歸求解跳臺階問題

 更新時間:2016年02月15日 16:45:10   作者:Zhang_H  
這篇文章主要介紹了使用C++求解跳臺階問題的方法,通過遞歸算法來解決,不算難,文中給出了計算思路,需要的朋友可以參考下

題目:

一個臺階總共有 n 級,如果一次可以跳 1 級,也可以跳 2 級。求總共有多少總跳法?

分析:

也是比較基礎(chǔ)的題目,通過遞歸可以方便的求解。
用Fib(n)表示青蛙跳上n階臺階的跳法數(shù),青蛙一次性跳上n階臺階的跳法數(shù)1(n階跳),設定Fib(0) = 1;
       當n = 1 時, 只有一種跳法,即1階跳:Fib(1) = 1;
       當n = 2 時, 有兩種跳的方式,一階跳和二階跳:Fib(2) = Fib(1) + Fib(0) = 2;
       當n = 3 時,有三種跳的方式,第一次跳出一階后,后面還有Fib(3-1)中跳法; 第一次跳出二階后,后面還有Fib(3-2)中跳法;第一次跳出三階后,后面還有Fib(3-3)中跳法
        Fib(3) = Fib(2) + Fib(1)+Fib(0)=4;
       當n = n 時,共有n種跳的方式,第一次跳出一階后,后面還有Fib(n-1)中跳法; 第一次跳出二階后,后面還有Fib(n-2)中跳法..........................第一次跳出n階后,后面還有 Fib(n-n)中跳法.
       Fib(n) = Fib(n-1)+Fib(n-2)+Fib(n-3)+..........+Fib(n-n)=Fib(0)+Fib(1)+Fib(2)+.......+Fib(n-1)
      又因為Fib(n-1)=Fib(0)+Fib(1)+Fib(2)+.......+Fib(n-2)
      兩式相減得:Fib(n)-Fib(n-1)=Fib(n-1)         =====》  Fib(n) = 2*Fib(n-1)     n >= 2
      遞歸等式如下:

2016215164218510.png (464×172)

代碼實現(xiàn)如下(GCC編譯通過):

#include "stdio.h"
#include "stdlib.h"
 
int function(int n);
 
int main(void)
{
  int tmp;
   
  tmp = function(5);
  printf("%3d\n",tmp);
 
  return 0;
}
 
int function(int n)
{
  if(n == 1)
    return 1;
  else if(n == 2)
    return 2;
  else  
    return function(n-1) + function(n-2);
}

相關(guān)文章

  • C+繼承之同名覆蓋,函數(shù)重寫與多態(tài)詳解

    C+繼承之同名覆蓋,函數(shù)重寫與多態(tài)詳解

    這篇文章主要介紹了C+繼承之同名覆蓋,函數(shù)重寫與多態(tài),是C++面向?qū)ο蟪绦蛟O計非常重要的概念,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • LZ77壓縮算法原理的理解

    LZ77壓縮算法原理的理解

    這篇文章主要介紹了LZ77壓縮算法原理的理解的相關(guān)資料,數(shù)據(jù)壓縮是一個減小數(shù)據(jù)存儲空間的過程,目前被應用在軟件工程的各個地方,了解其一些原理,方便我們更好的甄選壓縮方案,需要的朋友可以參考下
    2017-08-08
  • C語言memset函數(shù)詳解

    C語言memset函數(shù)詳解

    這篇文章主要介紹了C語言中的memset()函數(shù),包括其與memcpy()函數(shù)的區(qū)別,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • C語言實現(xiàn)遍歷文件夾中的文件

    C語言實現(xiàn)遍歷文件夾中的文件

    這篇文章主要為大家詳細介紹了如何使用C語言實現(xiàn)遍歷文件夾中的文件,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2024-02-02
  • 深入第K大數(shù)問題以及算法概要的詳解

    深入第K大數(shù)問題以及算法概要的詳解

    本篇文章是對第K大數(shù)問題以及算法概要進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C++11?constexpr使用詳解

    C++11?constexpr使用詳解

    constexpr是一種比const?更嚴格的束縛,?它修飾的表達式本身在編譯期間可知,?并且編譯器會盡可能的?evaluate?at?compile?time,本文重點給大家介紹C++11?constexpr使用,需要的朋友可以參考下
    2021-12-12
  • C++設計模式之簡單工廠模式實例

    C++設計模式之簡單工廠模式實例

    這篇文章主要介紹了C++設計模式之簡單工廠模式實例,工廠模式有一種非常形象的描述,建立對象的類就如一個工廠,而需要被建立的對象就是一個個產(chǎn)品,需要的朋友可以參考下
    2014-09-09
  • C語言實現(xiàn)時間戳轉(zhuǎn)日期的算法(推薦)

    C語言實現(xiàn)時間戳轉(zhuǎn)日期的算法(推薦)

    下面小編就為大家?guī)硪黄狢語言實現(xiàn)時間戳轉(zhuǎn)日期的算法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 淺談C++類型轉(zhuǎn)換幾種情況

    淺談C++類型轉(zhuǎn)換幾種情況

    本文主要介紹了幾種C++類型轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++:string字符串的切片方式

    C++:string字符串的切片方式

    這篇文章主要介紹了C++:string字符串的切片方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論