代碼如下:
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。