递归算法总结

递归算法就是方法不断的去调用本身,直到满足某个条件

递归会把一个大问题分解成小问题,一点点的去计算

如题1:求1-100的和

public class Demo {
    public static void main(String args[]) {
        System.out.println(add(100));
    }
    public static int add(int num) {
        if (num ==1) {
            return 1;
        } else {
            return num + add(num - 1);
        }
    }
}

主方法首先会去执行add(100),返回100+ add(99),add(99)会返回 99+add(98),以此类推,最后把返回值加在一起(100+99+98+。。1)就是5050

题二:斐波那契数列(1,1,2,3,5,8,13~~~),求第n个位置的值是?斐波那契数列递归的定义:F1=1,F2=1,Fn=F(n-1)+(n-2)

public class Demo {
    public static void main(String args[]) {
        System.out.print(f(6));
    }

    public static int f(int n) {
        if (n == 1 || n == 2) {
            return 1;
        } else {
            return f(n - 1) + f(n - 2);
        }
    }
}

思路如下:

原文地址:https://www.cnblogs.com/sflik/p/4526827.html