C語言 遞迴解決青蛙跳台階問題

2022-09-21 14:09:07 字數 656 閱讀 4135

目錄

乙隻青蛙一次可以跳1級或2級台階,求當台階數為n時青蛙有多少種跳法。

台階的數量為n。

當 n = 1 時,青蛙有一種跳法,即跳1級台階。

當 n = 2 時,青蛙有兩種跳法,即跳兩次1級台階或跳一次2級台階。

當 n = 3 時,青蛙可以先跳2級台階再跳1級台階,也可以選擇先跳1級台階再跳2級台階,或者是跳三次1級台階。依次類推,我們就能知道台階數為n時青蛙的跳法。

但是,這樣子是不是很麻煩呢,再仔細想一下。

還是當 n = 3 時,我們選擇先跳1級台階,剩下的2級台階的跳法,是不是就是當 n = 2 ngfpxxrpt時青蛙的跳法;我們選擇先跳程式設計客棧2級台階,剩下的1級台階的跳法,是不是就是當 n = 1 時青蛙的跳法。

由此可知,n = 3 時青蛙的跳法為 n 程式設計客棧= 1 時的跳法加上 n = 2 時的跳法。

當 n = n 時,n個台階的跳法為 n-1 的跳法加上 n-2 的跳法。

乍一看,是不是感覺和斐波那契數列有點像,當然,還是有一丟丟不一樣的,不過我們可以用同樣的數學思想來解決這個問題。

#define _crt_secure_no_warnings 1

#include

int flog(int n)

int main()

孤寡 孤寡 孤寡

青蛙跳台階問題(C語言)

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。題目分析 分析思路 青蛙對每級台階可選擇過或者不過 換個角度來看,題目的問題等價於,青蛙現在在起點n 0處。目標是n n處。那麼經過序號1,2,3 n 1層台階。對於每一層台階,都可...

遞迴求解青蛙跳台階問題

1.乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階,問這個青蛙跳上n級台階一共有多少種跳法 思路一 和漢諾塔一樣,遞迴的思路就是把問題簡化到更小規模的問題,在寫程式的時候確定兩個目標。一是如何分解乙個問題,二是當該問題分解到最簡時如何處理,將這兩塊內容通過程式告訴電腦,就可以把任務推給電腦,由電腦...

青蛙跳台階問題

題目 乙隻青蛙一次可以跳上 1 級台階,也可以跳上2 級。求該青蛙跳上乙個n 級的台階總共有多少種跳法。我的思路 最開始我的思路是把這個看成是乙個數學問題,n i 1 k 2先把所有可能滿足這個公式的i和k求出來。然後在對i和k做排列組合。很明顯i的範圍應該是0 public int jumpflo...