首页 > 其他分享 >方法递归(黑马)

方法递归(黑马)

时间:2024-06-01 19:29:18浏览次数:12  
标签:递归 void System public static println 方法 黑马 out

public static void main(String[] args) {
        test1();
    }

    public static void test1(){
        System.out.println("----test1----");
        test1();
    }

    public static void test2(){
        System.out.println("----test2----");
        test3();
    }

    private static void test3() {
        test2();
    }

递归算法三要素:

  •  递归的公式:f(n) = f(n - 1) * n
  • 递归的终结点:f(1)
  • 递归的方向必须走向终结点

  • 案例:用方法递归计算阶乘
public static void main(String[] args) {
        System.out.println(f(5));
    }

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

    }
  • 递归求1-n的和
 public static void main(String[] args) {
        System.out.println(f(5));
    }

    public static int f(int n) {
        if(n == 1){
            return 1;
        }else{
            return f(n - 1) + n;
        }

    }
  • 猴子吃桃问题
 public static void main(String[] args) {
        //猴子吃桃问题:后一天吃的都是前一天桃子数量的一半再减一个
        //f(x) - f(x) / 2 - 1 = f(x + 1) x是天数
        //2f(x) - f(x) - 2 = 2f(x + 1)
        //f(x) = 2f(x + 1) + 2
        System.out.println(f(1));
        System.out.println(f(2));
        System.out.println(f(3));
        System.out.println(f(4));
        System.out.println(f(5));
    }

    public static int f(int x) {
        if(x == 10){
            return 1;
        }else{
            return 2 * f(x + 1) + 2;
        }

    }

标签:递归,void,System,public,static,println,方法,黑马,out
From: https://blog.csdn.net/m0_56508224/article/details/139335261

相关文章

  • 【Python--openCV图像处理】Python学习-OpenCV图像处理基础超详细的学习笔记(黑马程序
    一,openCV基础说明:笔记是跟着B站黑马程序员的openCV课程时做的课程资料可以在黑马程序员评论区获取1,图像基本操作1-1图像基础操作1-1-1安装相关库pipinstallopencv-pythonpipinstallopencv-contrib-python##尽量保持两个库安装的版本,比如我都是4.9.0.80ope......
  • 高度向稀疏的毫米波成像方法
    分析:高度向稀疏的采样数据是整行缺失的,每一列上都缺失了大量数据,这可能造成高度向的混叠现象,但是每一行上是没有缺失数据的,这说明方位向应该是不会出现混叠现象。考虑到上述现象,对于三维成像,可不可以先实现距离-方位向的二维成像,而后再实现高度向的聚焦,进而实现三维成像。想......
  • 改进rust代码的35种具体方法-类型(二十)-避免过度优化的诱惑
    上一篇文章-改进rust代码的35种具体方法-类型(十九)-避免使用反射“仅仅因为Rust允许您安全地编写超酷的非分配零复制算法,并不意味着您编写的每个算法都应该是超级酷的、零复制和非分配的。”-trentj   这本书中的大多数项目都旨在帮助现有程序员熟悉Rust及其成语。......
  • 判断机器大小端的三种方法
    unionUn{inta;charb;};intmain(void){unionUnun;un.a=0x12345678;//此时内存空间确实为0x12345678,但是更改0x78(例如改成0x99)的值会导致判断失误if(un.b==0x78)//具体取决于编译器对联合体的处理方式{//这......
  • vcruntime140.dll丢失如何安装,附找不到vcruntime140.dll的六种解决方法
    vcruntime140.dll是一个动态链接库文件,属于MicrosoftVisualC++RedistributablePackages的一部分,专为VisualStudio2015开发环境设计。它提供了C运行时库(CRT)中的一些关键功能,以及一些额外的Microsoft特定的运行时功能。这些功能包括但不限于内存分配与释放、数学计算、字符......
  • 基于量化索引调制的信息隐藏方法
    目录1.量化索引调制的基本原理2.基于量化索引调制的信息隐藏2.1信息嵌入2.2信息提取1.量化索引调制的基本原理        Quantization Index Modulation,简称QIM,即量化索引调制,是Chen和Wornell提出的一种基于量化思想的非线性信息隐藏技术。QIM算法思想是......
  • 在iPhone上恢复已删除的Safari历史记录的最佳方法
    您是否正在寻找恢复iPhone上已删除的Safari历史记录的最佳方法?好吧,这篇文章提供了4种在有/无备份的情况下恢复iPhone上已删除的Safari历史记录的最佳方法。现在按照分步指南进行操作。iPhone上的Safari历史记录会被永久删除吗?当您选择清除Safari历史记录时,它......
  • mysql数据库8.4免安装方法配置
    在执行以下操作时,先把以前的data删除,移除相关服务后再进行操作。netstopmysqlmysqld--remove【简单安装,且操作不复杂】#1、根目录下新建my.ini[mysqld]basedir=C:/mysqldatadir=C:/mysql/dataport=3306#2、空密码初始化mysqld--initialize-insecure--user=mysql--conso......
  • 5种方法,教你判断线程池是否全部完成
    5种方法,教你判断线程池是否全部完成前言isTerminated方式getCompletedTaskCountCountDownLatch计数器CountDownLatch概述维护一个公共计数Future判断任务执行状态前言最近写代码的时候用到了CountDownLatch计数器,然后顺便想了想判断线程池全部结束有多少种方......
  • 慧聪网的外链加入技巧与方法
    在当今竞争激烈的互联网时代,网站的外链数量和质量对于提升网站的权威性和流量至关重要。慧聪网作为中国领先的B2B电子商务平台之一,为许多企业提供了机会展示和推广产品与服务。本文将为您介绍如何在慧聪网加入外链的技巧和方法,帮助您更好地利用慧聪网提升网站的曝光度和流量。一......