目錄
乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法
遇見題目我們可以在紙上先動手畫畫,把最簡單的幾種方式列出來,作比較,找規律。
按照上面**可以從跳法次數,過程,或者兩者結合找規律
1. 從跳法次數分析
**1(遞迴)
#include www.cppcns.com;
int jump(int n)
int main()
2. 從過程分析
**2(非遞迴)
#include
int fac(int m)
return count;
}int jump(int n)
return sum;
}int main()
乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階…也可以跳n級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法
**3(遞迴)
#include
int jump(int n)
int main()
乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階…也可以跳m級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法(m<=n)
**4(遞迴)
#include
int jump(int n,int m)
}int main()
有a,b,c三個柱子,a柱子上從上到下,從小到大排列著n個圓盤。現要求將a柱子上的n個圓盤全部移動到c柱子上,依然按照從上到下,從小到大的順序排列。且對移動過程要求如下:
a)一次只能移動乙個盤子。
b)移動過程中**子不允許出現在小盤子上方。
問:總共需要移動的步數是多少?
因為求的是步數,我們可以通過找前面幾組資料,觀察是否有什麼規律
**5(非遞迴)
#include
#include
int main()
**6(遞迴)
#include
int towww.cppcns.comwer(int n)
int main()
有a,b,c三個柱子,a柱子上從上到下,從小到大排列著n個圓盤。現要求將a柱子上的n個圓盤全部移動到c柱子上,依然按照從上到下,從小到大的順序排列。且對移動過程要求如下:
a)一次只能移動乙個盤子。
b)移動過程中**子不允許出現在小盤子上方。
問:列印移動的方案 (例如, 移動a柱最上面的圓盤到c柱, 則輸出"a -> c")
因為求的是移動方案,所以我們可以將前幾組資料列出來,結合遞迴化簡為繁的思想找共性和非共性
**7(遞迴)
#include
void hanio(int n, char x, char y, char z)
}int main()
結語:
青蛙跳台階問題(C語言)
題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。題目分析 分析思路 青蛙對每級台階可選擇過或者不過 換個角度來看,題目的問題等價於,青蛙現在在起點n 0處。目標是n n處。那麼經過序號1,2,3 n 1層台階。對於每一層台階,都可...
Java實現青蛙跳台階
乙隻青蛙一次可以跳上1級台階,也可以跳上2級 它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法。我的想法 我記得這是乙個斐波那契數列的問題?但是做出來不對。public class solution int next 1 int nn 0 if target 1 1 next jumpf...
斐波拉契數列 漢諾塔,青蛙跳台階
斐波拉契數列 漢諾塔,青蛙跳台階 的演算法實現 一.斐波那契數列 1,1,2,3,5,8,13,21,34 f n 0,1,f n 1 f n 2 n 0n 1 n 2遞迴解法 效率很低 public function fibonacci1 n if n 1 return fibonacci1 n ...