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

自己做动漫头像的网站地区电商网站系统

自己做动漫头像的网站,地区电商网站系统,高端品牌网站建设(杭州),麻城网站设计一个函数在它的函数体内调用它自身称为递归调用#xff0c;这种函数称为递归函数。执行递归函数将反复调用其自身#xff0c;每调用一次就进入新的一层#xff0c;当最内层的函数执行完毕后#xff0c;再一层一层地由里到外退出。 递归函数不是C语言的专利#xff0c;Java…一个函数在它的函数体内调用它自身称为递归调用这种函数称为递归函数。执行递归函数将反复调用其自身每调用一次就进入新的一层当最内层的函数执行完毕后再一层一层地由里到外退出。 递归函数不是C语言的专利Java、C#、JavaScript、PHP 等其他编程语言也都支持递归函数。我们通过一个求阶乘的例子看看递归函数到底是如何运作的。阶乘 n! 的计算公式如下 根据公式编写如下的代码 #include stdio.h//求n的阶乘 long factorial(int n) {if (n 0 || n 1) {return 1;}else {return factorial(n - 1) * n; // 递归调用} }int main() {int a;printf(Input a number: );scanf(%d, a);printf(Factorial(%d) %ld\n, a, factorial(a));return 0; }运行结果 Input a number: 5↙ Factorial(5) 120factorial() 就是一个典型的递归函数。调用 factorial() 后即进入函数体只有当 n0 或 n1 时函数才会执行结束否则就一直调用它自身。 由于每次调用的实参为 n-1即把 n-1 的值赋给形参 n所以每次递归实参的值都减 1直到最后 n-1 的值为 1 时再作递归调用形参 n 的值也为1递归就终止了会逐层退出。 递归的进入 1 . 求 5!即调用 factorial(5)。当进入 factorial() 函数体后由于形参 n 的值为 5不等于 0 或 1所以执行factorial(n-1) * n也即执行factorial(4) * 5。为了求得这个表达式的结果必须先调用 factorial(4)并暂停其他操作。换句话说在得到 factorial(4) 的结果之前不能进行其他操作。这就是第一次递归。 2 . 调用 factorial(4) 时实参为 4形参 n 也为 4不等于 0 或 1会继续执行factorial(n-1) * n也即执行factorial(3) * 4。为了求得这个表达式的结果又必须先调用 factorial(3)。这就是第二次递归。 3 . 以此类推进行四次递归调用后实参的值为 1会调用 factorial(1)。此时能够直接得到常量 1 的值并把结果 return就不需要再次调用 factorial() 函数了递归就结束了。 我们通过下图来深入理解递归逐层进入的过程 递归的退出 当递归进入到最内层的时候递归就结束了就开始逐层退出了也就是逐层执行 return 语句。 1 . n 的值为 1 时达到最内层此时 return 出去的结果为 1也即 factorial(1) 的调用结果为 1。 2 . 有了 factorial(1) 的结果就可以返回上一层计算factorial(1) * 2的值了。此时得到的值为 2return 出去的结果也为 2也即 factorial(2) 的调用结果为 2。 3 . 以此类推当得到 factorial(4) 的调用结果后就可以返回最顶层。经计算factorial(4) 的结果为 24那么表达式factorial(4) * 5的结果为 120此时 return 得到的结果也为 120也即 factorial(5) 的调用结果为 120这样就得到了 5! 的值。 我们通过下图来深入理解递归逐层退出的过程 递归的条件 每一个递归函数都应该只进行有限次的递归调用否则它就会进入死胡同永远也不能退出了这样的程序是没有意义的。 要想让递归函数逐层进入再逐层退出需要解决两个方面的问题 存在限制条件当符合这个条件时递归便不再继续。对于 factorial()当形参 n 等于 0 或 1 时递归就结束了。每次递归调用之后越来越接近这个限制条件。对于 factorial()每次递归调用的实参为 n - 1这会使得形参 n 的值逐渐减小越来越趋近于 1 或 0。如果感觉不错的话请点赞哟
http://www.zqtcl.cn/news/276237/

相关文章:

  • 视频类网站如何做缓存网页设计框架怎么写
  • wordpress建站访问提示不安全网页加速器哪个最好用
  • 网博士自助建站系统下载毕业设计代做网站唯一
  • 江西网站建设优化服务营销软文范例大全100字
  • 图片类网站怎样做高并发专业做旗袍花的网站是什么网站
  • 我要建网站需要什么专业网站制作全包
  • 网站开发合同印花税自定义手机网站建设
  • 营销型网站开发流程制作网站需要钱吗
  • 提供有经验的网站建设百度识图识别
  • html手机网站怎么做湖南关键词优化品牌推荐
  • 网站定制开发收费标准是多少易语言如何做浏网站
  • 网站怎么做实名认证新手怎么开婚庆公司
  • .net做网站用什么技术网站优化排名方案
  • 电商网站备案流程网站移动端优化的重点有哪些
  • 数据需求 网站建设做qq空间的网站
  • 微信网站游戏网络规划设计师可以挂证吗
  • 有个做特价的购物网站网站建设与维护题库及答案
  • 长沙网站优化价格创意设计师个人网站
  • 滨河网站建设南京免费发布信息网站
  • 蓝色系列的网站邓砚谷电子商务网站建设
  • 德阳市住房和城乡建设局网站首页一个服务器可以建多少个网站
  • 建一个电商网站多少钱一起做网店货源app
  • 做网站用lunx代理记账 营销型网站
  • 凡客做网站怎么样WordPress分类目录 前100篇
  • 腾讯wordpress 建站教程本地的上海网站建设公司
  • 深圳市南山区住房和建设局官方网站上海专业网站建设公司站霸网络
  • 建网站的8个详细步骤网站集约化建设讲话
  • 建设局哪个网站查证南京注册公司多少钱
  • 免费的网站制作郑州中森网站建设
  • 网站关键词搜不到了濮阳网络教育