标签:
递归算法就是方法不断的去调用本身,直到满足某个条件
递归会把一个大问题分解成小问题,一点点的去计算
如题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),以此类推,最后把返回值加在一起就是5050
题二:黄金分割法(1,1,2,3,5,8,13~~~),求第n个数字的值是?
public class Demo { public static void main(String args[]) { System.out.print(sum(5)); } public static int sum(int fn) { if (fn == 1 || fn == 2) { return 1; } else { return sum(fn - 1) + sum(fn - 2); } } }
标签:
原文地址:http://www.cnblogs.com/sflik/p/4526827.html