题目:青蛙跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级的台阶总共有多少种跳法?
n = 1: 1种 -> 1
n = 2: 2种 -> 1+1、2
n = 3: 3种 -> 1+1+1、1+2、2+1
n = 5: 3种 -> 1+1+1+1、1+2+1、1+1+2、2+2、2+1+1
分析:
若以f(x)表示跳法函数,当有n级台阶时,跳台阶的方法可以分为两大块相加:
1、第一次跳1级台阶,则剩下有n-1级台阶 -->f(n-1);
2、第一次跳2级台阶,则剩下有n-2级台阶 -->f(n-2);
则n级台阶的跳法为:
f(n) = f(n-1)+f(n-2) (n>=3)
f(x)可以分段表示为:
f(1) = 1 (n=1)
f(2) = 2 (n=2)
f(n) = f(n-1)+f(n-2) (n>=3)
代码实现:
int Stepjump(int n)
{
if ( n == 1 || n ==2)
return n