**
递归
**
递归的两个条件
- 可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。(自身调用)
- 存在一种简单情境,可以使递归在简单情境下退出。(递归出口)
递归三要素:
- 一定有一种可以退出程序的情况;
- 总是在尝试将一个问题化简到更小的规模
- 父问题与子问题不能有重叠的部分
递归头。什么时候不调用自身方法,如果没有头,将陷入死循环
递归体。什么时候需要调用自身方法
public static void main(String[] args) {
//递归
System.out.println(a(4));//基数比较小的情况下用递归,大的话不考虑
}
public static int a(int b){
if (b==1){
return 1;
}else{
return b*a(b-1);
}
}//5 5*4*3*2*1 4 4*3*2*1=递归顺序