关注“爱当程序员的我”,每天都有关于编程头条发布
斐波那契数列是金典数列问题,也是程序员在初学递归时常用的例子。
今天小编来说说学好数学对编程有什么用。
首先我们从最简单的递归开始
递归实现斐波那契数列
这个是最简单的版本,但是时间复杂度为O(N^2),简单的算着还可以,数越大这个程序越慢。
所以我们将递归转化为非递归
非递归实现斐波那契数列
这个算法很快,时间复杂度O(N),但是我们可以通过数学的思想将其转换为O(1)的算法
数学推导斐波那契数列
通过这样我们就可以直接算出第n个数值,但是这样算出来是浮点类型的
乘方函数
数学方法解斐波那契数列
这样我们就实现了O(1)的算法,所以说我们还是应该用数学的思想来解决问题。