首先要明白斐波那契数列是什么,就是前两个数字的和是第三个数字
比如 1 1 2 3 5 8 13
那么第2个数字1 就是0+1
第3个数字2 就是1+1
第4个数字3 就是1+2
用数学的思想就是:f(n)=f(n-1)+f(n-2)
所以第一种方法是用递归:
接下来,我们用非递归的方式实现:
思想
首先我们定义s1 s2 代表 数列中前两个数字 1 ,sum代表它们的和
如上图,如果我们数列的个数小于3,那么就输出1;现在是前三个数字,如果第四个数字呢?第四个数字就是3,那么,此时s1会指向s2的位置,s2会指向sum的位置,sum会指向3,如下图:
所以我们的代码思想应该是这样:如果n小于3,那么他输出1.如果n大于等于3,则为前两个数字相加的和。也就是:s1向后移动到s2的位置(将s2的值给s1),s2向后移动到了之前sum的位置(将之前计算的sum赋值给s2),而此时的sum是位置移动后的s1和s2的和: