递归算法之基础练习
递归的定义: 一个函数自己直接或间接调用自己。 我们只要把下面两个基本的问题搞明白就差不多理解了递归的含义。 ( 这里需要注意的是我们写递归的时候一定要有个递归出口、不然会导致栈溢出异常 ) /** * 递归的复习与巩固 * @author qiu * 定义:一个函数自己直接或间接调用自己。 */ public class Recursion { public static void main ( String [ ] args ) { //求阶乘 n!的问题可以看成n*(n-1)! int num = factorial ( 10 ) ; System . out . println ( num ) ; //求1+2+3....+n的和 int sum = factorial1 ( 5 ) ; System . out . println ( sum ) ; } public static int factorial ( int N ) { //递归函数 if ( N == 1 || N == 0 ) { //递归结束出口 return 1 ; } else if ( N < 0 ) { //递归结束出口 return - 1 ; } else { return N * factorial ( N - 1 ) ; } } private static int factorial1