Java递归实现斐波那契数列

代码如下:

public class demo{
	public static void main(String args[]) {
		demo d = new demo();
		int n = d.method(3);
		System.out.println(n);
	}
	public int method(int n) {
		if(n == 1) {
			return 1;
	}else if(n == 2) {
			return 1;
		}else {
		return method(n - 1) + method(n - 2);
		}
	}
}

使用方法:往第4行代码(n)中传值即可。可将第4行代码省略,直接println(d.method(3));
斐波那契数列例子:1 1 2 3 5 8 13 21 34 55 89 144
原理:首先查看n是否与1或2相同,如果相同就直接返回值1;如果不相同则进行计算,返回它的前一个值加上前两个值的和,由于调用自身的方法回到参数n继续循环计算,直到n等于1或者2运算完成后返回值。
例如上面代码的是3,则是return method(3 - 1) + method(3 - 2);,之后method(2)method(1)又重新运算,因为1和2符合上方if以及if else判断的值,所以第一个method(n -1)为1,第二个method(n -2)为1,两个相加返回2。

posted @ 2021-07-07 16:52  凯哥xyz  阅读(792)  评论(0编辑  收藏  举报