1. 每步1或2阶
2. 必须是偶数步
求上台阶的方案数。
------------------
没有偶数限制:
f(n) = f(n-1) + f(n-2)
--------------------
f(n) 必须偶数步
g(n) 必须奇数步
f(n) = g(n-1) + g(n-2)
g(n) = f(n-1) + f(n-1)
出口:
f(n) n==0: 1 n==1: 0
2. 必须是偶数步
求上台阶的方案数。
------------------
没有偶数限制:
f(n) = f(n-1) + f(n-2)
--------------------
f(n) 必须偶数步
g(n) 必须奇数步
f(n) = g(n-1) + g(n-2)
g(n) = f(n-1) + f(n-1)
出口:
f(n) n==0: 1 n==1: 0
g(n) n==0: 0 n==1: 1
public class Main {
static int f(int i){
if(i==1) return 1;
if(i==2) return 1;
return g(i-1)+g(i-2);
}
static int g(int i){
if(i==1) return 0;
if(i==2) return 1;
return f(i-1)+f(i-2);
}
public static void main(String[] args) {
System.out.println(f(39));
}
}