首页 > 编程知识 正文

迭代法计算斐波那契数列,迭代实现斐波那契数列

时间:2023-05-04 17:17:53 阅读:187245 作者:2525

分别使用迭代和递归打印斐波那契数列的前40个元素。

迭代使用的是循环结构,递归使用的是选择结构。

使用递归能让程序的结构更清晰 ,更简洁 ,更容易让人理解,从而减少代码阅读的时间。

但大量的递归调用会建立函数的副本,会消耗大量的内存和时间,而迭代则不需要此种付出。

我在运行程序的时候明显感觉到在后边递归打印的时候速度缓慢。

package com.YC.algorithm.recursion; /**斐波那契数列的前40个输出* @ author YC */public class Fibonacci { publicstaticvoidmain (string [ ] args ) system.out.printtem System.out.println (递归: ); for(intI=0; i 40; I ) system.out.print (fibonaccibyrecursion (I ) ); System.out.print (' ); } } /** *迭代实现* @ param num */privatestaticvoidfibonaccibyiteration (intnum ) int ) ) f=newint ) num ); f[0]=0; f[1]=1; system.out.print(f[0]''f[1] ' ); for(intI=2; i 40; I ) f(I )=f(I-1 ) f ) I-2 ); system.out.print(f[I] ); System.out.print (' ); } System.out.println (; } /** *递归实现* @ param num * @ return */privatestaticintfibonaccibyrecursion (intnum ) if ) num2) { return num==0? 0 : 1; } returnfibonaccibyrecursion (num-1 ) fibonaccibyrecursion (num-2 ); }输出如下。

迭代实现:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3 524578 5702887 9227465 14930352 24157817 39088169 63245986

递归实现:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3 524578 5702887 9227465 14930352 24157817 39088169 63245986

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。