• 7.23Java之递归练习


    7.23Java之递归练习

    需求

    使用递归计算1 - n之间的和

    实例图

    package PracticeReview.Recursion;

    /*
    使用递归计算1 - n之间的和
    */
    public class RecursionDemoNo2 {
       public static void main(String[] args) {
           int s = sum(3);
           System.out.println(s);
      }

       /*
       定义一个方法,使用递归j计算1-n之间的和
       1+2+3+...+n
       n+(n-1)+(n-2)+...+1
       已知:
       最大值:n
       最小值:1
           使用递归必须明确的条件:
           1、递归的结束条件
               获取到1的时候结束
           2、递归的目的
               获取下一个被加的数字(n-1)
        */
       public static int sum(int n){
           /*获取到1的时候结束*/
           //判断
           if (n==1){
               return 1;
          }

           /*获取下一个被加的数字*/
           return n + sum(n-1);
      }
    }
    方法执行原理分析图

    需求

    使用递归求n得阶乘:
    n! = n * (n-1) * (n-2) * (n-3) * ... * 3 * 2 * 1

    实例图

    package PracticeReview.Recursion;

    /**
    * 需求:
    * n! = n * (n-1) * (n-2) * (n-3) * ... * 3 * 2 * 1
    * 已知:
    * 起始值:n
    * 结束值:1
    * 递归的目的:
    * 获取下一个被乘的数字
    * @since JDK 1.8
    * @date 2021/07/23
    * @author Lucifer
    */
    public class RecursionDemoNo3 {
       public static void main(String[] args) {
           int jc = factorial(5);
           System.out.println(jc);
      }

       /**
        * 阶乘的方法
        * @param i
        * @return
        */
       public static int factorial(int i){
           //判断是否结束
           if (i==1){
               return i;
          }

           //获取下一个书
           return i * factorial(i-1);
      }
       /*
       使用递归明确两点:
       1、递归的结束条件
       2、递归的目的
       调用方法,方法的主题不变,参数改变
        */
    }

     

    It's a lonely road!!!
  • 相关阅读:
    一个整型数组里除了两个数字之外,其他的数字都出现了两次
    输入一颗二叉树的根节点,求该树的深度
    输入两个单向链表,找出它们的第一个公共结点
    java归并排序
    这样设计 Java 异常更优雅,赶紧学!
    2019 最新 Java 核心技术教程,都在这了!
    程序员加班写的代码,千万不要相信!
    为什么有些大公司技术弱爆了?
    这才是微服务划分的正确姿势,值得学习!
    为什么 Kafka 速度那么快?
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15050244.html
Copyright © 2020-2023  润新知