【剑指offer】09-2跳台阶,C++实现
原创博文,转载请注明出处!
# 本文是牛客网《剑指offer》刷题笔记
1.题目
# 一只青蛙一次可以跳1级台阶,也可以跳2级。求该青蛙跳n级的台阶总共有多少种跳法。
2.思路
# 跳0级,f(0)=0
# 跳1级,一次跳一级一种跳法,f(1)=1
# 跳2级,第一次跳一级和第一次跳两级两种跳法,f(2)=2
# 跳3级,第一次跳一级(剩余两级有f(2)种跳法)和第一次跳两级(剩余一级有f(1)种跳法),f(3)=f(2)+f(1)
# 跳n级,第一次跳一级(剩余n-1级有f(n-1)种跳法)和第一次跳两级(剩余n-2级有f(n-2)种跳法),f(n)=f(n-1)+f(n-2)-----裴波那切数列
3.code
# 返回值--跳n级台阶的跳法
# 参数--n级台阶
1 class Solution { 2 public: 3 int jumpFloor(int number) { 4 5 if(number<=0) 6 return 0; 7 8 if(number<3) 9 return number; 10 11 int a=1; 12 int b=2; 13 int c=0; 14 for(int i=3;i<=number;++i){ 15 c=a+b; 16 a=b; 17 b=c; 18 } 19 return c; 20 } 21 };