【剑指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 };
posted @ 2018-03-08 08:59  wanglei5205  阅读(876)  评论(0编辑  收藏  举报
levels of contents