当前位置: 首页 > news >正文

方法递归-结合案例阶乘问题、求和问题和猴子吃桃问题

方法递归

递归是一种算法 在程序设计语言中广泛应用.

从形式上来说:方法调用自身的形式称为方法递归(recursion).

递归的形式:

  • 直接递归:方法调用自己。
  • 间接递归:方法调用其他方法,其他方法又回调方法自己。
//直接方法递归
public static void test1(){System.out.println("----test1----");test1();
}
//间接方法递归
public static void test2(){System.out.println("----test2----");test3();
}
public static void test3(){test2();
}

使用方法递归时需要注意的问题:

递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出错误。

递归案例(一)-计算机n的阶乘

需求:计算n的阶乘,5的阶乘=1x2x3x4x5;6的阶乘=1x2x3x4x5x6;

分析:

①假如:我们存在一个公式是f(n)=1x2x3x4x5x6x7…(n-1)*n;

②那么公式等价于f(n)=f(n-1)*n;

③如果求的是1-5的阶乘的结果,我们手工应该如何应用上述公式进行计算

f(5)=f(4)x5;

f(4)=f(3)x4;

f(3)=f(2)x3;

f(2)=f(1)x2

f(1)=1;

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

递归算法三要素:

  1. 递归的公式;
  2. 递归的终结点;
  3. 递归的方向必须走向总结点。

递归案例(二)-求1-n的和

需求:计算n的阶乘,1-5的和=1+2+3+4+5;1-6的和=1+2+3+4+5+6;

分析:

①假如:我们存在一个公式是f(n)=1+2+3+4+5+6+7…(n-1)+n;

②那么公式等价于f(n)=f(n-1)+n;

③如果求的是1-5的和的结果,我们手工应该如何应用上述公式进行计算

f(5)=f(4)+5;

f(4)=f(3)+4;

f(3)=f(2)+3;

f(2)=f(1)+2

f(1)=1;

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

递归案例(三)-猴子吃桃问题

问题描述:猴子第一天摘下若干桃子,当即吃了一半,觉得好不过瘾,于是又多吃了一个,第二天又吃了前天剩余桃子数量的一半,觉得好不过瘾,于是又多吃了一个以后每天都是吃前天剩余桃子数量的一半,觉得好不过瘾,又多吃了一个等到第10天的时候发现桃子只有1个了。
需求:请问猴子第一天摘了多少个桃子?

分析:

①f(10)=1
②公式f(x)-f(x)/2-1=f(x+1)
③变形:f(x)/2-1=f(x+1)
④变形2:f(x)=2*f(x+1)+2

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

相关文章:

方法递归-结合案例阶乘问题、求和问题和猴子吃桃问题

方法递归 递归是一种算法 在程序设计语言中广泛应用. 从形式上来说:方法调用自身的形式称为方法递归(recursion). 递归的形式: 直接递归:方法调用自己。间接递归:方法调用其他方法,其他方法…...

有一个主域名跟多个二级子域名时该怎么申请SSL证书?

当您拥有主域名以及多个子域名时,选择合适的SSL证书类型对于确保网站的安全性至关重要。以下是三种SSL证书类型的简要介绍: 单域名SSL证书: 功能:只能绑定单个域名,无论是主域名还是子域名。 适用场景:仅…...

LabVIEW伺服电机可应用在哪些领域

LabVIEW与伺服电机的结合,得益于LabVIEW强大的图形编程能力和伺服电机的高精度、高响应速度,广泛应用于多个领域。以下是一些主要应用领域: 1. 工业自动化 数控机床控制 LabVIEW用于控制伺服电机在数控机床中的运动,实现高精度的…...

nvidia 显卡 没有正确安装或配置 OpenGL 库

看到这个错误可能意味着你的系统没有正确安装或配置 OpenGL 库。以下是一些步骤来解决这个问题: 1. 安装必要的软件包 确保你已经安装了必要的软件包,包括 mesa-utils 和 nvidia-driver。 安装 mesa-utils sudo apt update sudo apt install mesa-ut…...

将自己md文件发布到自己的博客园实现文件的持久化存储

上传markdown文件到博客园 目录 【0】需求原因【1】功能【2】环境【最佳实践测试】 (1)查看 Typora 设置(2)配置 pycnblog 配置文件 config.yaml(3)运行 pycnblog 中的文件 cnblog_markdown.cmd&#xff0…...

uni-app的生命周期(应用,页面生命周期)

1. uni-app的生命周期(应用,页面生命周期) 1.1. 应用生命周期 1.1.1. 定义在app.vue中 生命周期函数名说明onLaunch当uni-app 初始化完成时触发(全局只触发一次)onShow当 uni-app 启动,或从后台进入前台…...

响应式企业网站建站系统源码 模版丰富+一站式建站 全开源可二次开发 带源码包+搭建部署教程

系统概述 在数字化转型的浪潮中,企业官网作为品牌展示、产品推广及客户服务的重要窗口,其建设质量直接影响着企业的线上形象与市场竞争力。响应式企业网站建站系统源码的出现,为企业提供了一种高效、灵活且成本可控的建站解决方案。 代码示…...

如何解除内存卡的写保护并格式化为exFAT文件系统

最近有客户提问内存卡提示写保护,且无法格式化为exFAT格式的问题,可能是由于多种原因引起的。以下是一些可能的解决方法: 1. 检查物理写保护开关 一些SD卡和MicroSD卡适配器上有一个小的物理开关,可以启用或禁用写保护。确保这个…...

【 EI会议 | 西南大学主办 | 往届均已实现检索】第三届神经形态计算国际会议(ICNC 2024)

第三届神经形态计算国际会议(ICNC 2024) 2024 3rd International Conference on Neuromorphic Computing (ICNC 2024) 一、重要信息 大会官网:www.ic-nc.org(点击投稿/参会/了解会议详情) 会议时间:2024年12月13-15…...

利用python爬虫采集苹果公司各产品销售收入统计报告

数据为2013年到2022年苹果公司各产品(iPhone、iPad、Mac等)及服务的销售收入。iPhone是苹果公司销售收入最高的产品。 数据统计单位为:亿美元 。 数据说明: 数据整理自苹果公司历年10-K文件,每年10-K文件可能对之前年…...

ethercat igh可能出现的两个bug

1. 插入网线直接就进入op状态,这可能是因为 从站支持eoe协议 igh对eoe协议支持的从站默认使其直接进入op状态,可以修改igh源码编译选项,不启动eoe协议 可以参考: igh编译选项 igh一些EoE协议说明 Automatic Configuration&#…...

计算机网络知识点(三)

目录 一、简述TCP连接和关闭的状态转移 二、简述TCP慢启动 三、简述TCP如何保证有序 四、简述TCP常见的拥塞控制算法 五、简述TCP超时重传 一、简述TCP连接和关闭的状态转移 状态转移图 图中上半部分是TCP的三次握手过程的状态变迁,下半部分是TCP四次挥手过程的…...

关于认证协议

本地用户认证 本地认证的意思就是,我们的电脑上存储着自己的账号密码,无论电脑是否联网,只要能开机,就可以输入账号密码登录到电脑中,工作组就是采用本地认证 本地认证流程 winlogon.exe -> 接收用户输入 -> …...

C#操作MySQL从入门到精通(20)——更新数据

前言: 谈到数据库,大家最容易脱口而出的就是增删改查,本文所说的更新数据就是增删改查的改,改变数据的意思。 本文测试使用的数据库如下: 1、更新一列 所谓更新一列的意思就是只更改一列数据,并且通常要使用where条件,因为不加这个条件的话会导致将所有行的数据进行…...

NVMe全闪存储系统性能测试及产品功能与应用场景

今天我们继续对全闪存储系统GS 5024UE的评测,重点关注GS 5024UE的性能测试数据,以及产品所具备的功能、应用场景。通过Windows IOmeter测试软件,来测试GS 5024UE设备的性能,在机器上配上24颗 NVMe 3.84TB硬盘, 16条32Gb FC数据&am…...

C#面:C#面向对象的思想主要包括什么?

C#面向对象的思想主要包括以下几个方面: 封装(Encapsulation):封装是将数据和操作数据的方法封装在一起,形成一个类。通过封装,可以隐藏类的内部实现细节,只暴露必要的接口给外部使用。这样可以…...

海南云亿商务咨询有限公司正规吗?怎么样?

在当下数字化浪潮汹涌的时代,抖音电商作为新兴的营销渠道,正以其独特的魅力和巨大的市场潜力,吸引着越来越多的企业和品牌投身其中。作为专注抖音电商服务的佼佼者,海南云亿商务咨询有限公司凭借专业的团队、丰富的经验和前瞻的战…...

【数据结构】排序(上)

个人主页~ 堆排序看这篇~ 还有这篇~ 排序 一、排序的概念及应用1、概念2、常见的排序算法 二、常见排序的实现1、直接插入排序(1)基本思想(2)代码实现(3)时间复杂度(4)空间复杂度 2…...

vue3+el-plus对eleplus对el-table表格进行拖拽(使用sortablejs进行列拖拽和行拖拽):

如有对表格拖拽进行限制某列或某行不进行拖拽的需求,请点击: vue3ele-plussortableJs对el-table使用sortableJs插件对表格拖拽时限定某列或某行不允许拖拽-CSDN博客 如果你已实现拖拽需求,但拖拽后发现表头并未改变的话,请点击&…...

Nginx如何隐藏版本号

1 找到nginx.conf配置文件进行修改 http{...server{listen 80 default_server;listen [::]:80 default_server;server_name _;root /usr/share/nginx/html;server_tokens off; #添加这一项就可以了location / {}error_page 404 /404.html;location /40…...

告别枯燥理论:用51单片机和DAC0832做个迷你音乐合成器,汇编语言实现《小星星》

用51单片机和DAC0832打造迷你音乐合成器:汇编语言实现《小星星》全解析 在嵌入式系统学习的道路上,很多初学者都会遇到一个共同的问题:如何将枯燥的理论知识转化为有趣的实际应用?今天,我们就来打破常规,用…...

律师拜访客户记不全?2026年4款语音转文字神器,自动整理要点不用逐字手打

做AI工具测评快三年,最近接了不少从业者的吐槽:律师出门拜访客户,不敢一直低头记怕不尊重对方,回来补要点漏了核心诉求;内容创作者剪口播视频,扒字幕改错字改到眼酸;做访谈调研的朋友&#xff0…...

2026届学术党必备的AI写作网站实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 作为学术研究启动时核心的前置材料的开题报告,要完成文献梳理,要搭建…...

DeepSeek-R1大模型微调实战:从LoRA原理到完整项目部署指南

1. 项目概述:一个面向开发者的开源大模型微调项目最近在开源社区里,一个名为FareedKhan-dev/train-deepseek-r1的项目引起了我的注意。乍一看,这只是一个托管在代码托管平台上的仓库,但如果你像我一样,在过去几年里深度…...

AI全领域热点速递(2026年5月11日)

💌 关心家人,从每日报平安开始。万年历提醒微信小程序,您值得体验。📰 每日整理AI领域核心动态,精选有价值资讯,精简可读,适合收藏备查。🤖 AI全领域热点速递(2026年5月1…...

Audacity音频编辑完全手册:从零开始制作专业音频作品

Audacity音频编辑完全手册:从零开始制作专业音频作品 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 想制作播客却不知道如何剪辑?需要为视频添加背景音乐但找不到合适的工具?或…...

ArchivePasswordTestTool:5分钟掌握加密压缩包密码恢复的智能方案

ArchivePasswordTestTool:5分钟掌握加密压缩包密码恢复的智能方案 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾因遗…...

PaddleOCR迁移学习踩坑记:从数字识别到模型过拟合,我的2万张图白训了?

PaddleOCR迁移学习实战避坑指南:从数字识别到模型优化的深度复盘 在OCR技术应用日益广泛的今天,迁移学习成为快速实现特定场景文字识别的有效手段。然而在实际操作中,许多开发者(包括笔者本人)都曾陷入"伪迁移学…...

【DeepSeek安全防护权威指南】:20年攻防专家亲授Prompt注入3大高危场景与7层防御体系

更多请点击: https://intelliparadigm.com 第一章:DeepSeek Prompt注入防护的演进与现状 随着 DeepSeek 系列大模型在企业级场景中的深度部署,Prompt 注入攻击已从理论威胁演变为高频真实风险。早期防护策略依赖于简单的关键词过滤和长度截断…...

3大照片管理痛点,1个工具彻底解决:ExifToolGUI完全指南

3大照片管理痛点,1个工具彻底解决:ExifToolGUI完全指南 【免费下载链接】ExifToolGui A GUI for ExifTool 项目地址: https://gitcode.com/gh_mirrors/ex/ExifToolGui 你是否曾面对数百张旅行照片,需要统一修改拍摄时间却无从下手&…...