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

java递归函数的解析

目录

 

一,什么是递归

二,什么时候用递归方法

三,怎么运用递归写代码

四,递归代码的运用。


 

一,什么是递归

方法递归就是在一个方法执行的内部,自己调用了自己的过程。递归分为两个子过程递过程和归过程。

递过程:就是函数不断调用自身,直到走到函数的终止条件,第一阶段结束。逐层向下。

归过程:函数不断返回的过程称为归过程。

二,什么时候用递归方法

a.一个大问题可以拆分成若干个子问题的解。

b.拆分后的子问题和原问题除了数据规模不同,解决问题的思路完全相同。

c.必须存在递归的终止条件。(不能无限拆分,必须存在问题的根)。

三,怎么运用递归写代码

3.1,在写递归函数时,千万不要纠结函数内部该如何实现,而是注意这个方法的功能到底是什么你就假设这个方法已经写好,你只是调用这个方法。

3.2,终止条件,就是不利于任何函数的帮助就能得出的答案的值,(就像求阶乘中,1的阶乘不用借助任何函数求值就是1)。

四,递归代码的运用。

写出递归代码=终止条件+不借助任何方法就能实现的步骤+剩下的问题全部利用这个方法去解决,

public class Csdn {public static int factor( int num) {if (num == 1) {return 1;}return num * factor(num - 1);}public static void main(String[] args) {int n =5;System.out.println(factor(5));}}

解析函数运行的每一步

第一步,5传入了num,返回了 5*factor(4)

关键点 方法调用时候,函数会卡在方法的调用,直到方法返回继续运行。

此时函数factor(5)在等待factor(4)的返回值。

第二步,factor(4)中4传入了num,这个过程就是递过程,返回了4*factor(3),此时函数factor(4)在等factor(3)的返回值。

第三步,函数一直重复递的过程,直到num=1,返回值等于1,此时1逆着向上返回,返回给上一步的2*factor(1),这就是归过程。

第四步,2*factor(1)=2再返回给3*factor(2)=6,再返回给4*factor(3)=24,再返回给5*factor(4)=120.最终得出结果,函数结束。

 

http://www.lryc.cn/news/2416181.html

相关文章:

  • 全国大学生统计建模大赛历年获奖论文集下载教程(知网)
  • adobe dreamweaver cs5序列号
  • 安卓开发学习笔记(1) preferences实现设置界面
  • Hook api! 如何拦截系统api, 让它做你想做的事!
  • 程序框图与计算机程序,_算法与程序框图_ppt.ppt
  • MyEclipse-7.5.0版注册码破解及激活操作
  • 最全音频总线汇总
  • Web 项目中分享到微博、QQ空间等分享功能
  • CheckBoxList、DropDownList、ListBox、RadioButtonList、BulletedList对于符号的解释区别
  • BeyondCompare3密钥过期怎么办?不用再找新的密钥,一招帮你搞定!
  • dell 笔记本禁用触摸板方法
  • 【游戏逆向】CS1.6无限手雷辅助
  • 红客联盟是什么?红客需要传承!
  • 用WordPress开发app之拿去即用的Blog-App
  • 屏幕录像专家6.0_电脑屏幕录像直播软件推荐?功能全面的专业软件分享
  • WSockExpert[抓包工具]
  • 开源软件抄袭 美国_本网站共享来自美国政府多个项目的开源代码
  • 404是什么意思,404错误页面有什么用?
  • Freehostia 老牌稳定免费空间申请教学
  • Ecall测试,ITU-T P.1140 车载紧急呼叫系统语音测试
  • python-正则表达式及应用(b站弹幕屏蔽)
  • 我的ESP32学习(5)AP和后续长远布局
  • Squirrel SQL Client客户端工具
  • 轻松应对:《精灵与萤火意志》游戏缺失iutils.dll文件的终极解决指南
  • 搜索引擎分类与工作原理
  • Android 根目录和sdcard卡路径分析
  • NR 5G 密钥与安全详解
  • 人品计算器
  • Conficker蠕虫病毒专杀工具集锦
  • IOS NSProcessInfo获取系统开机累计时间