题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:思路就是斐波那契数列
n个台阶f(n)包括两种情形,一种是刚刚跳了1级,一种是刚刚跳了2级,只有这两种情况。若是刚刚跳了1级的话,那么有f(n-1)中跳法,若是刚刚跳了2级的话,那么有f(n-2)种方法,所以f(n)=f(n-1)+f(n-2).
代码:
class Solution { public: int jumpFloor(int number) { if(number==1) return 1; if(number==2) return 2; int num_first = 1; int num_second = 2; int count; if(number>=3) { for(int i=2;i<number;i++) { count = num_first + num_second; num_first = num_second; num_second = count; } } return count; } };