Java教程

java-day22

本文主要是介绍java-day22,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、递归:自己调用自己
递归结构包括两个部分:
---递归头:什么时候不调用自身方法。如果没有头,会陷入死循环(即限制条件)
---递归体:什么时候调用自身方法。
递归的深度越大,占用的空间内存就会大,实用性也就不会那么好。大计算能少用递归就少用

尝试用下面的代码,会导致stackoverflowerror (栈溢出)

package methodd;

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

    }

    public void test(){
        test();
    }
}

报错如下:

2、用递归实现阶乘

package methodd;

//阶乘
//比如2!  2的阶乘,即2*1   1!  1的阶乘就是1本身
//3!  3的阶乘 3*2*1
//5!  5的阶乘 5*4*3*2*1

public class Demo03 {
    public static void main(String[] args) {
        System.out.println(f(5));
    }

    // 2! 2*f(1)
    // 3!  3*f(2)   3*2*f(1)
    public static int f(int n){
        if(n==1){
            return 1;
        }else{
            return n*f(n-1);
        }

    }
}
这篇关于java-day22的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!