递归
-
A方法调用B方法 ,我们很容易理解。
-
递归就是:A方法调用A方法,就是自己调用自己
-
利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述处解题过程所需要的多重计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合
-
递归结构包括两个部分:
- **递归头:**什么时候不调用自身方法。如果没有头,将陷入死循环。
- **递归体:**什么时候需要调用自身方法。
递归结构:
package com.baidu.www;
public class HelloWorld{
public static void main(String[] args) {
//调用可变参数的办法
HelloWorld test = new HelloWorld();
test.test();
}
public static void test(){
test();
}
}
这个时候会报错
案例:阶乘
package com.baidu.www;
public class HelloWorld{
public static void main(String[] args) {
//调用可变参数的办法
int d=t(5);
System.out.println(d);
}
public static int t(int n){
//当n为1时 阶乘为1
if(n==1){
return 1;
}else{
//n不为1时 进入递归
int result=n*t(n-1);
return result;
}
}
}