通过递归法解决阶梯问题(n个台阶,上楼可以一步上1阶,也可以一步上2阶,一共有多少种上楼的方法)
思路:提供了两种走阶梯的方式,一次一个阶梯或一次两个阶梯
假设:
只有一个阶梯,那么就是1,只有一种方法
有两个阶梯: 1、1
2 有两种方法
有三个阶梯: 1、1、1
1、2
2、1 有三种方法
可以发现当n不断变化,且n>2时,有f(n)=f(n-1)+f(n-2)。所以这里不管n有多大,我们还要反复的执行这个方法,直到这个n等于1或等于2时就可以终止了。
用递归法可以很轻松的实现:
package com.company; public class Main { public static void main(String[] args) { System.out.println(b(4)); } public static int b(int get) { if (get == 1) { return 1; } else if (get == 2) { return 2; } else { return b(b(get - 2)) + b(b(get - 1)); } } }