斐波纳契数列
package Action; public class test {public static void main(String[] args) {//循环可以很多次,但是最终只有一个返回值System.out.println(f(10));} public static int f(int n) {if (n == 1 || n == 2) { // 递归终止条件//1 1 2 3 5所以前两个数字都是1return 1; //是2或1就结束了,0不计算}//倒着计算System.out.println("此次递归数字到:"+n+",n-1:"+(n-1)+",n-2:"+(n-2));return f(n - 1) + f(n - 2); // 相同重复逻辑,缩小问题的规模}}
计算结果:【55】
此次递归数字到:10,n-1:9,n-2:8
此次递归数字到:9,n-1:8,n-2:7
此次递归数字到:8,n-1:7,n-2:6
此次递归数字到:7,n-1:6,n-2:5
此次递归数字到:6,n-1:5,n-2:4
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:6,n-1:5,n-2:4
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:7,n-1:6,n-2:5
此次递归数字到:6,n-1:5,n-2:4
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:8,n-1:7,n-2:6
此次递归数字到:7,n-1:6,n-2:5
此次递归数字到:6,n-1:5,n-2:4
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:6,n-1:5,n-2:4
此次递归数字到:5,n-1:4,n-2:3
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:3,n-1:2,n-2:1
此次递归数字到:4,n-1:3,n-2:2
此次递归数字到:3,n-1:2,n-2:1
55
这个就开始有点难了啊,希望大家好好理解理解。