用递推法和递归法计算斐波那契(Fibonacci)数列的第n项

您所在的位置:网站首页 java使用递归的方法求数列 用递推法和递归法计算斐波那契(Fibonacci)数列的第n项

用递推法和递归法计算斐波那契(Fibonacci)数列的第n项

#用递推法和递归法计算斐波那契(Fibonacci)数列的第n项| 来源: 网络整理| 查看: 265

斐波那契数列 递推法

编写程序,用递推法计算斐波那契(Fibonacci)数列的第n项。

求解思路:斐波那契(Fibonacci)数列为0,1,1,2,3,5,8,13,……,即:

F(0)=0,F(1)=1,

F(n)=F(n-1)+F(n-2),当n>1时。

用递推法编写的程序为:

#include int Fib(int n) { int f0=0,f1=1,f,i; if(n==0||n==1) { return n; } for(i=2;i int n=7; printf("Fib(%d)=%d\n",n,Fib(n)); }

执行结果 在这里插入图片描述

递归法

所谓递归算法就是在函数过程中直接或间接调用自己,还是求斐波那契数列的问题,相应的递归程序为:

#include int Fib(int n){ if(n==0||n==1) { return n; //结束项 } else { return Fib(n-1)+Fib(n-2); //递归项 } } void main() { int n=7; printf("Fib(%d)=%d\n",n,Fib(n)); }

执行结果 在这里插入图片描述 递归算法简单,但不能无限递归。因此,算法中需要设置递归结束条件。

递归法的时间效率较低,原因是重复计算太多。

例如:计算Fib(5),总计算次数为2Fib(6)-1=15。 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3