目录
递归指的是方法中调用方法本身的现象。
public class DiGui {
public static void main(String[] args) {
method();
}
public static void method(){
method();
}
}
上面的代码没有出口,所以会一直循环,直到堆内存溢出
所以说递归一定要有出口,否则就会出现内存溢出。
把一个复杂的问题层层转化为一个与原问题相似的 规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算。
使用递归求 1-100 的和
public static void main(String[] args) {
System.out.println(getsum(100));//5050
}
//方法
public static int getsum(int number) {
//出口
if (number == 1) {
return 1;
}
return number + getsum(number - 1);//每一次调用都要更接近出口
}
public static void main(String[] args) {
System.out.println(getFactorial(5));//120
}
//方法
public static int getFactorial(int number){
//出口
if (number==1){
return 1;
}
return number*getFactorial(number-1);//每一次调用都要更接近出口
}