本文最后更新于:2020年6月28日 下午

题目描述:

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

实现如下:

//两种跳跃方式:跳1级或跳2级
//假设有n级台阶,跳1级还剩余n-1级,跳2级还剩余n-2级,那剩余台阶继续选择跳法
//f(n) = f(n-1) + f(n-2) -> 斐波那契数列
//n = 1时,1
//n = 2时,2
class Solution 
{
public:
	int jumpFloor(int n)
	{
        int a = 1, b = 2, tmp = 0;
		if (n == 1) return 1;//特殊情况只有1级台阶
		else if (n == 2) return 2;//特殊情况只有2级台阶
		else
		{
			for (int i = 3; i <= n; ++i)
			{
				tmp = a + b;
				a = b;
				b = tmp;
			}
			return b;
		}
	}
};