package day01;
/**
* @version 1.0
* @ClassName Test01
* @category javaSE
* @QQ 1826286736
* @Author ${每特教育JY-010-小萌新}
* @Date 2022年02月08日 14:13
**/
public class Test02 {
/**
* 递归的定义:方法定义中调用方法本身的现象叫递归
* public void a() {
* a();
* }
* @param args
*/
public static void main(String[] args) {
/*
递归算法注意事项:
1.在使用递归算法,需要注意栈空间的深度
2.减少递归调用深度 通过一定条件退出
3.避免栈空间“栈溢出”
JVM设置该参数:-Xss10m
java进阶知识 jvm知识
*/
System.out.println(Factorial(5));
}
/**
* 递归求阶乘
* 用递归求5的阶乘,并把结果在控制台输出
* 阶乘定义:一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!;
* 例如:
* 1. 5!=5*4*3*2*1
* 2. 1!=1
* 递归规则:n!=n*(n-1)!
* 5!=5*4!
* @param i
* @return
*/
public static int Factorial(int i) {
if (i == 1) {
// 1的阶乘就是1,所以直接返回1
return 1;
} else {
// 每次调用i*(i-1)
return i * Factorial(i - 1);
}
}
}