<span>跳台阶问题(Fabonacci问题)</span>

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
 
 1 class Solution {
 2 public:
 3     int jumpFloor(int number) {
 4         if(number==1)
 5             return 1;
 6         if(number==2)
 7             return 2;
 8         long long temp2 = 1;
 9         long long temp1 = 2;
10         long long temp =0;
11         for(int i=3;i<=number;i++){
12             temp = temp1+temp2;
13             temp2 = temp1;
14             temp1 = temp;
15         }
16         return temp;
17     }
18 };

 

改变题目:

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
用数学归纳法,可得f(n)=2^(n-1)
1 class Solution {
2 public:
3     int jumpFloorII(int number) {
4         int result = 1;
5         for(int i=1;i<number;i++)
6             result *=2;
7         return result;
8     }
9 };

 

全部评论

相关推荐

面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务