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。