1 题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39

2 思路

  • 初始化f(0),f(1)

  • 遍历剩下的元素,后面元素等于前者两元素之和获得当前值cur

  • 将第一个数变成之前的第二个数,第二个数变成刚才的第二个数

3 递归

[剑指offer]5斐波那契数列_java

4 非递归

上图中可发现出现大量的重复计算,故采用迭代的方式即可。当然你可用动态规划做啦

[剑指offer]5斐波那契数列_java_02

5 小动画画


6 代码实现

c++版本

[剑指offer]5斐波那契数列_java_03c++

java版本

[剑指offer]5斐波那契数列_java_04java

python版本

[剑指offer]5斐波那契数列_java_05