斐波那契数列
关键词:迭代、斐波那契数列
题目描述
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:
1 |
|
斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
示例 1:
1 |
|
示例2:
1 |
|
思路
思路一:
栈和队列的区别就是先进后出和先进先出,所以可以使用一个栈当作辅助栈,用来实现另一个栈中元素的顺序调节。
建立栈s1和s2,初始化为空;(栈s1用作辅助栈)
添加元素:如果s2为空,则直接添加;如果s2有元素,则先倒到s1中,添加元素,再从s1倒回来;
删除元素:如果s2为空,返回-1,否则返回并删除s2顶端的元素。
代码
思路一:
因为斐波那契数列是有规律的,每个数只与前两个数有关,所以每次只需要保存前两个数就可以。
利用j和k保存两个数,注意每次都要对k进行一下取余。
1 |
|
知识点
- 斐波那契数列
- 迭代