美文网首页
31-方法递归调用

31-方法递归调用

作者: c88bc9f9d088 | 来源:发表于2020-10-12 10:15 被阅读0次

    方法的递归调用指的是一个方法自己调用自己的情况,利用递归调用可以解决一些重复且麻烦的问题。在进行方法递归调用的时候一般需要考虑如下几点问题:

  •     一定要设置方法递归调用的结束条件;
  •     每一次调用的过程之中一定要修改传递的参数条件。

范例:实现一个1~100的累加

//递归方式:
public class JavaDemo {
    public static void main(String [] args){
        System.out.println(sum(100));
    }
    public static int sum(int num){
        if(num == 1){
            return 1;
        }
        return num + sum(num - 1);
    }
}
//传统方式:
public class JavaDemo {
    public static void main(String [] args){
        int sum = 0;
        int x = 1;
        while(x<=100){
            sum += x;
            x++;
        }
        System.out.println(sum);
    }
}

    下面对此代码进行一些简单的分析处理:
· 【第1次执行sum(),主方法执行】return 100 + sum(99);
· 【第2次执行sum(),sum()递归调用】return 99 + sum(98);
· … … … … … …
· 【第99次执行sum(),sum()递归调用】return 2 + sum(1);
· 【第100次执行sum(),sum()递归调用】return 1;
整体形式:return 100 + 99 + 98 + … … .. + 2 + 1;递归操作虽然可以简化的调用,但是在实际开发之中,编写的代码可能会很少出现有递归情况。大部分情况下考虑的都只是一些简单的处理逻辑。递归少去使用还有另外一个原因:如果处理不当则会造成内存有溢出。

范例:计算“1!+2!+3!+4!+5!+… … +90!”
    在进行阶乘计算的时候必须要考虑选择的数据类型,肯定不能够使用int或long,只能够使用double。

public class JavaDemo {
    public static void main(String [] args){
        System.out.println(sum(90));
        System.out.println(fan(90));
    }
    public static double sum(int num){
        if(num == 1) return 1;
        return fan(num) + sum(num - 1);
    }
    public static double fan(int num){
        if(num == 1){
            return 1;
        }
        return num * fan(num - 1);
    }
}

    实际上有一部分的递归都是可以通过循环来完成,但是如果使用递归要比使用循环结构看起来更加清晰一些。

相关文章

  • 31-方法递归调用

        方法的递归调用指的是一个方法自己调用自己的情况,利用递归调用可以解决一些重复且麻烦的问题。在进行方法递归调...

  • 方法的定义与使用(方法递归调用)

    方法递归调用 方法的递归调用指的是自己调用自己的形式。一般如果要进行一个方法的递归调用是要有以下几个条件的。 方法...

  • 从零开始复习Java-递归

    递归 概念 甲方法调用乙方法,这是方法的调用。 甲方法调用甲方法,自己调用自己,这就是递归。 如下例,在test方...

  • 递归简述

    方法的递归调用: 方法自己调用自己的方法! 一般要进行递归操作 ,特点 方法必须有一个递归的结束调教 方法在每次...

  • day20\avi\20.01_IO流(递归概述和注意事项).a

    递归 (自己调用自己) 1 方法定义中调用方法本身的现象 递归注意实现 1 要有出口...

  • 递归与分治

    递归(Recursion):指函数的定义中调用函数自身的方法。 递归调用过程: 举个很好玩的栗子: 用递归调用输出...

  • 关于递归

    递归:方法自己调用自己

  • Java 获取菜单树结构

    调用 递归方法 MenuTreeVo 类

  • NO.29 递归调用

    递归调用:方法内部调用自己方法的现象称为递归调用,其允许程序执行到某个阶段时整体重新来过。 使用递归需要注意: 1...

  • NO.44 递归

    递归:方法自己调用自己 递归的弊端:不能调用次数过多,容易导致栈内存溢出 递归的好处:不用知道循环的次数 构造方法...

网友评论

      本文标题:31-方法递归调用

      本文链接:https://www.haomeiwen.com/subject/akdupktx.html