【剑指offer-解题系列(7、8)】斐波那契数列、跳台阶
2017-05-17 10:33
387 查看
斐波那契数列描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39,a
=a
+a[n-1],a[0]=0,a[1]=1
分析
无
跳台阶描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析
假设对于n-1级台阶,有 a[n-1]种跳法。
对于n-2级台阶,有 a[n-2]种跳法。
那么对于n级台阶, 可以先跳 n-1 级,再跳1级。
或者先跳n-2级,再连跳两级。
所以还是 :
a
=a
+a[n-1], a[1]=1,a[2]=2
代码
int Fibonacci(int n) {
if(n<=0)return 0;
int a=0,b=1;
for(int i=0;i<n;i++){
int tmp = a+b;
a = b;
b= tmp;
}
return a;
}
相关文章推荐
- 【剑指offer-解题系列(9)】变态跳台阶
- 剑指offer面试题9 斐波那契数列及青蛙跳台阶问题
- 【剑指offer-解题系列(47)】孩子们的游戏(圆圈中最后剩下的数)
- 【剑指offer-解题系列(6)】旋转数组中的最小数
- 【剑指offer-解题系列(12)】数值的整数次方
- 剑指offer 面试题9 斐波那契数列/青蛙跳台阶/矩形覆盖/变态跳台阶
- 【剑指offer-解题系列(48)】求1+2+3+...+n
- 【剑指offer-解题系列(52)】构建乘积数组
- 【剑指offer-解题系列(60)】按之字形顺序打印二叉树
- 【剑指offer-解题系列(13)】奇数位于数组的前列
- 【剑指offer-解题系列(27)】字符串的排列
- 【剑指offer-解题系列(61)】把二叉树打印成多行
- 【剑指offer-解题系列(2)】替换空格
- 【剑指offer-解题系列(29)】数组中出现次数超过一半的数
- 【剑指offer-解题系列(33)】把数组排成最小的数
- 【剑指offer-解题系列(53)】正则表达式匹配
- 【剑指offer-解题系列(3)】从尾到头,反向输出链表
- 剑指offer 面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖) 题解
- 【剑指offer-解题系列(15)】反转链表
- 【剑指offer-解题系列(30)】最小的K个数