数据结构与算法
一,递归
1,简介:
递归: 自己调用自己,每次传入的参数不同;
2,分析:
递归调用规则:
- 当程序执行到一个方法时,会在栈中开辟一个新的受保护的栈空间;
- 方法的局部变量是独立的,不会相互影响;
- 如果方法中使用的是引用类型变量,则会共享该变量;
- 递归必须向退出的条件逼近,否则会出现无限递归(死归);
- 当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用结果返回给谁,方法执行完毕或返回时,该方法也就执行完毕;
- 递归层次不易过多,可能导致栈溢出;
package com.recursion;
/**
* @param
* @Author: AaNeei
* @Date: 2019/6/15 11:18
* @Description: 游学网
* @throws:
*/
public class Factorial {
private static int count = 0;
public static void main(String[] args) {
int factorial = factorial(100000000);
System.out.println("递归" + count + "层,计算结果:" + factorial);
}
public static int factorial(int n) {
count++;
if (n == 1) {
return n;
} else {
return factorial(n - 1) * n;
}
}</