编程语言
首页 > 编程语言> > 递归算法---(求斐波拉西数列)

递归算法---(求斐波拉西数列)

作者:互联网

用递归算法来求斐波拉西数列

递归算法:在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。通过通过直接或间接调用本身得到结果;达到循环的作用;

斐波拉西数列:斐波拉西数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2);这个数列从第3项开始,每一项都等于前两项之和,第 n 项结果为:F(n)=F(n - 1)+F(n - 2),所以我们要想得到前面两个数的结果就得用到了阶乘。

示例代码

package com.etime2;

public class Test02 {

	public static void main(String[] args) {
		//斐波拉西数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
		//这个数列从第3项开始,每一项都等于前两项之和。
		//要想得到第n项的结果,就得用到递归算法了
		int series = series(7);
		System.out.println(series);//运行结果:13
		
		System.out.println("-------------------");
		//输入错误数值
		int series2 = series(-5);
		System.out.println(series2);//运行结果:-5: 小于0 无法求斐波拉西数!!!
	}
	
	public static int series(int a) {
		if(a>=0) {//大于等于0的数才可以求斐波拉西数
			if(a==0) {//第一项的斐波拉西数结果为0
				return 0;
			}else if(a==1){//第二项的斐波拉西数结果为1
				return 1;
			}else {//这个数列从第3项开始,每一项都等于前两项之和。
				   //使用递归算法得到前两数字的值
				return series(a-1)+series(a-2);
			}
		}else {
			System.out.println(a+": 小于0 无法求斐波拉西数!!!");
			return -1;
		}
	}

}

标签:return,数列,递归,series,波拉,---,求斐,println
来源: https://blog.csdn.net/qq_43711597/article/details/114808772