package day40;
public class day23 {
public static void main(String[] args) {
int factorial = factorial(5);
System.out.println(factorial);
}
public static int factorial(int a){
if (a==1){
return 1;
}else return a*factorial(a-1);
}
}
在Java中方法自己调用自己叫做递归
注意 能不用递归尽量不用递归
递归的思想是 把一个大型复杂问题层层转化为一个与原问题规模更小的问题,问题被拆解成子问题后,递归调用继续进行,直到子问题无需进一步递归就可以解决的地步为止。
为了保证递归的顺利进行需要以下条件
-
递归头:什么时候不调用自身方法,如果没有头将会陷入死循环
-
递归体:什么时候调用自身方法
当基数比较小的时候建议调用递归 当基数比较大的时候尽量不要调用递归