算法(一)递归

文章目录

  • 递归的概念
  • 递归三要素
  • 递归demo
    • 打印100次“hello word”
    • 斐波那契数列

递归的概念

递归算法是一种直接或者间接调用自身函数或者方法的算法。

递归三要素

  • 递归条件结束
    因为递归是循环调用自身,因此就必须要有结束条件,或者就会OOM。

  • 函数的功能
    函数的功能具体式做什么的需要清楚。打印?计算?移动位置?…

  • 函数的等价表达式
    递归公式一般是每次执行之间,或者与个数之间的逻辑关系。

递归demo

打印100次“hello word”

package com.xxliao.algorithms.recursion.demo;/*** @author xxliao* @description: 利用递归实现 打印100次 hello word* @date 2024/5/29 23:42*/
public class Demo01 {public static void main(String[] args) {print("hello word",100);}/*** @description  打印 count 次 message 信息* @author  xxliao* @date  2024/5/29 23:44*/public static void print(String message,int count) {if(count > 0) {// 递归的结束条件System.out.println(message); // 函数的功能print(message,count-1); //函数的等价关系式}}
}

输出结果:
在这里插入图片描述

斐波那契数列

package com.xxliao.algorithms.recursion.demo;/*** @author xxliao* @description: 利用递归实现如下功能:* 斐波那契数列:1、1、2、3、5、8、13、21、34、55.....* 规律:从第3个数开始,每个数等于前面两个数的和* 递归分析:* 函数的功能:返回n的前两个数的和* 递归结束条件:从第三个数开始,n<=2* 函数的等价关系式:fun(n)=fun(n-1)+fun(n-2)* @date 2024/5/29 23:47*/public class Demo02 {public static void main(String[] args) {System.out.println(fun(9));}//用于存储每次的计算结果static int[] sub=new int[10];/*** @description  斐波那契数列 实现,* @author  xxliao* @date  2024/5/29 23:49*/public static int fun(int n) {if(n==1 || n==2)return 1;if(sub[n]==0){sub[n]=fun(n-1)+fun(n-2);}return sub[n];}
}

输出结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低代码开发系统是什么?它有那些部分组成?

低代码开发系统是什么&#xff1f;它有那些部分组成&#xff1f; 一、引言 在当今快速变化的商业环境中&#xff0c;企业对于快速响应市场需求、降低开发成本和提高开发效率的需求日益增强。低代码开发系统&#xff08;Low-Code Development Platform&#xff09;应运而生&am…

安卓启动 性能提升 20-30% ,基准配置 入门教程

1.先从官方下载demohttps://github.com/android/codelab-android-performance/archive/refs/heads/main.zip 2.先用Android studio打开里面的baseline-profiles项目 3.运行一遍app&#xff0c;这里建议用模拟器&#xff0c;&#xff08;Pixel 6 API 34&#xff09;设备运行&a…

解决使用go get 下载模块下载超时的问题

解决使用go get 下载模块下载超时的问题 使用go env可以看到&#xff0c;默认的GOPROXY的值是https://proxy.golang.org, 而https://proxy.golang.org在国内无法访问. 如果您使用的 Go 版本是 1.13 及以上, 可以使用以下命令解决 go env -w GO111MODULEon go env -w GOPROXY…

#window11设置系统变量#

在Windows命令行中&#xff0c;可以通过不同的命令和方法来查看和修改环境变量设置。以下是详细的步骤和命令&#xff1a; 1. 临时设置环境变量&#xff08;当前命令行窗口有效&#xff09; 查看环境变量&#xff1a;直接运行 set 命令&#xff0c;可以查看当前系统的全部环境…

思科防火墙 网线连接的端口还是down 已配置 端口还是down

环境&#xff1a; 思科防火墙fpr-2100 isco Firepower 2100 系列防火墙是思科系统&#xff08;Cisco Systems&#xff09;推出的一款中端网络安全和防火墙设备。这一系列的产品主要针对中到大型企业的需求&#xff0c;提供高性能的威胁防护和网络流量管理功能。 问题描述&am…

Java微服务智慧工地可视化SaaS云解决方案源码

智慧工地是指运用信息化手段&#xff0c;围绕施工过程管理&#xff0c;建立互联协同、智能生产、科学管理的施工项目信息化生态圈&#xff0c;并将此数据在虚拟现实环境下与物联网采集到的工程信息进行数据挖掘分析&#xff0c;提供过程趋势预测及专家预案&#xff0c;实现工程…

程序员兼中医爱好者对AI的看法

一.背景 因为社交媒体的发展&#xff0c;AI这个话题几乎跨越了社会各个阶层和行业&#xff0c;成了与性、吃饭并驾齐驱的热门话题。在没有特意去查阅资料的情况下&#xff0c;根据个人成长经历&#xff0c;作为一个自诩有智慧的人类一员来探讨这个问题。 二.AI的崛起是人类开始…

ftc基础编程:探索编程世界的基石

ftc基础编程&#xff1a;探索编程世界的基石 在当今数字化时代&#xff0c;编程已成为一项重要的技能。而ftc基础编程作为编程领域的入门课程&#xff0c;对于初学者来说具有至关重要的作用。本文将从四个方面、五个方面、六个方面和七个方面深入探讨ftc基础编程的重要性及其核…

排序算法之直接选择排序【图文详解】

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 博主主页&#xff1a;LiUEEEEE                        …

AI问答:供应链和产业链的区别

一、概念不同 1.1、理解供应链 供应链是指围绕核心企业&#xff0c;从配套零件开始&#xff0c;制成中间产品以及最终产品&#xff0c;最后由销售网络把产品送到消费者手中的、将供应商&#xff0c;制造商&#xff0c;分销商直到最终用户连成一个整体的功能网链结构。涉及一系…

基于tensorflow和NasNet的皮肤癌分类项目

数据来源 https://challenge.isic-archive.com/data/#2019 数据划分 写了个脚本划分 for line in open(ISIC/labels.csv).readlines()[1:]:split_line line.split(,)img_file split_line[0]benign_malign split_line[1]# 0.8 for train, 0.1 for test, 0.1 for validati…

快蜗牛OZON数据分析,OZON快蜗牛数据

在当今电商行业蓬勃发展的背景下&#xff0c;OZON作为俄罗斯及东欧市场的重要电商平台&#xff0c;其数据背后蕴藏着巨大的商业价值。快蜗牛&#xff0c;作为专注于OZON平台的数据分析工具&#xff0c;为卖家提供了深入的市场洞察和策略指导。接下来看看快蜗牛OZON数据分析&…

线上 | OpenSergo - [规范]

INDEX 1 参考资料2 OpenSergo 与 Sentinel 关系3 规范体系3.1 服务元数据ReportMetadataRequest 信息![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ffba569841ae4668b4cff74e4d41d21f.png)##### ReportMetadataReply 信息![在这里插入图片描述](https://img-blog…

BurpSuite2024.5

1 工具介绍 本版本更新介绍 此版本引入了Burp Scanner对WebSockets的支持、对记录登录编辑器的改进、WebSocket 匹配和替换规则以及许多性能改进。 Burp Scanner 支持 WebSockets 我们已更新内部代理的配置以允许 WebSocket 流量。这使 Burp Scanner 现在可以抓取依赖 WebSo…

基于大模型的智慧零售教育科研平台——技术方案

一、概述 1.1背景 随着数字经济的快速发展和全社会数字化水平的升级&#xff0c;人工智能的积极作用越来越凸显&#xff0c;人工智能与各个行业的深度融合已成为促进传统产业转型升级的重要方式之一。ChatGPT的出现掀起了又一波人工智能发展热潮&#xff0c;人工智能行业发展势…

Linux sudo用户权限管理小实验001

Linux sudo用户权限管理和审计-初步 1、设置历史指令的保存数量 默认history指令可以查看当前用户执行的1000条历史命令的条目 2、使用export指令设置HISTSIZE环境变量的数量为999999条。 3、基于date指令&#xff0c;输出日期和时间 4、设置linux系统history相关变量&…

js怎么根据出生日期计算年龄?js计算日期间隔

在用户主页信息展示中&#xff0c;有一个需求是根据用户填写的出生日期&#xff0c;计算出年龄&#xff0c;现用Javascript写一个方法进行实现。 // 根据出生日期计算年龄 // strBirthday: 出生日期字符串 1998-12-31 // 返回结果&#xff1a;0:同岁&#xff1b;-1:表示出生日期…

预编码算法(个人总结)

引言 预编码算法是现代无线通信系统中的关键技术&#xff0c;特别是在多输入多输出&#xff08;MIMO&#xff09;系统中。它们通过在发送端对信号进行处理&#xff0c;减少干扰并提高信道容量。这种技术广泛应用于5G、Wi-Fi和卫星通信系统中。本教程将详细介绍预编码算法的背景…

FV悬浮球,安卓真正小而美的神器,满足你的一切需求。

如果你问安卓最强软件有哪些&#xff0c;不同的人可能会有不同的答案&#xff0c;但如果是问我&#xff0c;那我的答案中一定会有他。 FV悬浮球 他是ES文件浏览器&#xff0c;原作者的新作品&#xff0c;经过几年的开发&#xff0c;拥有了超过400项功能&#xff0c;但大小只有…

GPT-4o:人工智能新时代的先锋

如何评价GPT-4o? 简介&#xff1a;最近&#xff0c;GPT-4o横空出世。对GPT-4o这一人工智能技术进行评价&#xff0c;包括版本间的对比分析、GPT-4o的技术能力以及个人感受等。提醒&#xff1a;在发布作品前&#xff0c;请把不需要的内容删掉。 方向一&#xff1a;对比分析 提…