• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 递归里面用return了,那么函数遇到return就不走了,是不是就不用归了?

递归里面用return了,那么函数遇到return就不走了,是不是就不用归了?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了递归函数return,return函数,return函数的用法,return语句在函数之外,void函数return等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:递归里面用return了,那么函数遇到return 就不走了,是不是就不用归了?
描述:

递归里面用return了,那么函数遇到return 就不走了,是不是就不用归了?


解决方案1:

递归的四条基本法则:(引自《数据结构与算法分析——C语言描述》Mark Allen Weiss 著)
1. 基准情形。
2. 不断推进。
3. 设计法则。
4. 合成效益法则。
这里结合前面宋小北回答中的例子函数来说明跟题主问题很相关的前两条。

该函数的基准情形就是 num <= 1 的情况,这种情况下,无需递归就能解出,也就是直接返回1. 我想这就是题主所说的“遇到return就不走了,不用归了”。
而 return numfact(num-1); 则是“不断推进”。 return 8fact(8-1); 则需要知道fact(7),要知道fact(7),则需要return 7fact(7-1); 要知道fact(6),则需要return 6fact(6-1); .。。。如此下去,直到遇到“基准情形”。前面hwz的回答中父函数,爷爷函数比喻的很形象。

解决方案2:

return 对当前函数来说是结束了,对调用它的父函数来说你这个函数执行完成了,父函数就会接着执行下一语句。
没想到父函数马上又遇到一个return,父函数结束了,对爷爷函数来说父函数执行完成了,爷爷函数就接着执行下一个语句
没想到。。。
没想到。。。

完,回到最初调用递归函数的地方。

解决方案3:

http://jsfiddle.net/cj6tY/


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 递归里面用return了,那么函数遇到return就不走了,是不是就不用归了?

相关文章

  • 2017-06-07 七牛jsSDK中的自定义变量设置
  • 2017-06-07 关于Python抓取的HTML网页文档的解码问题
  • 2017-06-07 (laravel)关于“数据”的上下属数据列表设计问题。
  • 2017-06-07 关于如何使用七牛java-sdk进行分块并行上传大文件
  • 2017-06-07 带宽时延乘积和TCP通告窗口的关系
  • 2017-06-07 (VFP)从几个表中提取需要的字段到一个表中,如何写SQL代码?谢谢!
  • 2017-06-07 PHP中引用与指针的区别?PHP中有指针这一说吗?
  • 2017-06-07 javascriptforin与$bind结合出现奇怪的问题!
  • 2017-06-07 (python)vim代码中莫名出现的空格是什么原因?
  • 2017-06-07 (python)sqlalchemy怎么按照日期给文章做归档?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 有哪些供程序员在线coding的网站?
    • (python)Djangostatic=False时,静态文件的处理。
    • jbpm43用户组问题
    • 请教个seam登录的问题
    • (ruby)安装cocoapods的坑
    • c语言问题。求救~~~~
    • 基于jboss6的jmx开发
    • 建议增加“目录缓存规则”。
    • 七牛上面视频加载失败
    • Qt调用PHPphp中调用七牛云cdn的api刷新缓存不成功

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有