遞迴(斐波那契數列)
阿新 • • 發佈:2019-02-19
有這樣一組數列用陣列的方式求出固定的位數的值;用遞迴的方式求出第N位的值 1 1 2 3 5 8 13 21
public class Test5 {
/**
* 1 1 2 3 5 8 13 21
* 1 = fun(1)
* 1 = fun(2)
* 2 = fun(1) + fun(2)
* 3 = fun(2) + fun(3)
*/
public static void main(String[] args) {
//demo1();
System.out.println(fun(8));
}
public static void demo1() {
//用陣列做不死神兔
int[] arr = new int[8];
//陣列中第一個元素和第二個元素都為1
arr[0] = 1;
arr[1] = 1;
//遍歷陣列對其他元素賦值
for(int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 2] + arr[i - 1];
}
//如何獲取最後一個數
System.out.println(arr[arr.length - 1 ]);
}
/*
* 用遞迴求斐波那契數列
*/
public static int fun(int num) {
if(num == 1 || num == 2) {
return 1;
}else {
return fun(num - 2) + fun(num - 1);
}
}
}