利用return语句实现方法的递归。
如下是一个简单的递归算法,实现5+4+3+2+1的和。
public class MultiN {
public static void main(String[] args) {
System.out.println(Multi(5)); / 为n赋值为5.
}
/*
* 1、Multi(5)
* return 5 * Multi(5 - 1)
* 2、Multi(4)
* return5 * 4 * Multi(4 - 1)
* 3、Multi(3)
* return5 * 4 * 3 * Multi(3 - 1)
* 3、Multi(2)
* return5 * 4 * 3 * 2 * Multi(2 - 1)
* 4、Multi(1)
* return5 * 4 * 3 * 2 * 1;
*
* return 5 * 4 * 3 * 2 * 1
*
*/
public static int Multi(int n){
return (n == 1 || n == 0) ? n : n * Multi((n -1));
}
}
先赋值一个n=5,然后经过三目运算判断之后,返回一个值,就是上述第一个值。
然后继续判断,继续的返还一个新的值,就是上述第二个值,然后不断的重复,直至满足三目运算符中的条件,才停止下来,返还一个n值。
而n就是 5 * 4 * 3 * 2 * 1。
注意一直运算的是Multi()这个数据。