递归的定义:
一个函数自己直接或间接调用自己。
我们只要把下面两个基本的问题搞明白就差不多理解了递归的含义。
(这里需要注意的是我们写递归的时候一定要有个递归出口、不然会导致栈溢出异常)
/**
* 递归的复习与巩固
* @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(int N) {
if(N==1) { //递归结束出口
return 1;
}
return N+factorial1(N-1);
}
}
来源:CSDN
作者:邱鑫甜
链接:https://blog.csdn.net/qq_38790872/article/details/104270351