码迷,mamicode.com
首页 > 其他好文 > 详细

一只青蛙从第一级台阶跳到第n级,每次可以跳任意级,共有多少种跳法,并写出递推式

时间:2017-04-15 12:02:41      阅读:379      评论:0      收藏:0      [点我收藏+]

标签:斐波那契数列   blog   技术   台阶   问题   ret   code   stat   跳台阶   

是斐波那契数列问题

假设f(n)是n个台阶跳的次数:(假设已经调到第n个台阶,最后一次是由哪个台阶跳上来的)

f(n) = f(n-1)+f(n-2)+...+f(n-(n-1)) + f(n-n) == f(0) + f(1) + f(2) + f(3) + ... + f(n-2) + f(n-1) == f(n) = 2*f(n-1)

所以,可以得出递推式:

技术分享

1 public static int jumpFloor(int n) {
2         if (n <= 0)
3             return 0;
4         if (n == 1)
5             return 1;
6         return 2 * jumpFloor(n - 1);
7 }

跳台阶,一次只能夸1个、2个和3个台阶,解法类似:

1 public static int cnt(int n){
2         int[]dic = {0,1,2,4};
3         if ( n <= 3)
4             return dic[n];
5         return cnt(n-1) + cnt(n-2) + cnt(n-3);
6 }

 

一只青蛙从第一级台阶跳到第n级,每次可以跳任意级,共有多少种跳法,并写出递推式

标签:斐波那契数列   blog   技术   台阶   问题   ret   code   stat   跳台阶   

原文地址:http://www.cnblogs.com/lezhifang/p/6713371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!