java递归

1、递归就是:A方法调用A方法,就是自己调用自己。

 

2、利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型的问题层层转化为一个与原问题相似的规模较小的问题来求解,大大的减少了程序的代码量。

 

3、递归结构包含两个部分:

     递归头:什么时候不调用自身方法,如果没有头,将陷入死循环。

     递归体:什么时候调用自身方法。

 

错误的递归:

没有递归头!

public class Demo7 {
    public static void main(String[] args) {
        Demo7 demo7 = new Demo7();
        demo7.test();
    }
    public void test(){
        test();
    }
}

会出现堆栈溢出错误(StackOverflowError)

 

 

正确的递归:

求阶乘!

 1 public class Demo5 {
 2     public static void main(String[] args) {
 3         System.out.println(f(5));
 4     }
 5 
 6     //5!  =  5*4*3*2*1
 7 
 8     public static int f(int n){
 9         if (n==1){
10             return 1;
11         }else{
12             return n*f(n-1);
13         }
14     }
15 }

 

注意:

     递归它是有边界条件。

     数据大了尽量不要使用递归。

posted @ 2022-03-03 16:11  小王同学学编程  阅读(47)  评论(0)    收藏  举报
levels of contents