用递推法和递归法计算斐波那契(Fibonacci)数列的第n项 |
您所在的位置:网站首页 › java使用递归的方法求数列 › 用递推法和递归法计算斐波那契(Fibonacci)数列的第n项 |
斐波那契数列
递推法
编写程序,用递推法计算斐波那契(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 |