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

绵阳 网站建设中文域名注册管理中心

绵阳 网站建设,中文域名注册管理中心,网站平面设计完成后 与客户怎样沟通,html5网站开发趋势1.递归的概念 递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢? 递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。 递归的思想: 把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但…

1.递归的概念

  递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢? 递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。

  递归的思想:
  把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。 递归中的递就是递推的意思,归就是回归的意思。
  优点是它可以把代码变得更加清晰,具有可读性。
 
  但它也有自己的缺点,我们接下来先谈一下递归的两个限制条件,再来从此引出对递归缺点的讨论。

2.递归的限制条件

  我们先来看一个最简单的递归函数:

#include <stdio.h>
int main()
{printf("hehe\n");main();//main函数中⼜调⽤了main函数return 0; }

  当我们尝试运行的时候,可以发现函数陷入了死循环,出现了栈溢出的报错,即会提示出stack overflow的报警。

  实际上我们在使用函数的时候,都会在栈空间分配一块内存,而如果这个函数没有进行完,那么这块空间就不会得到释放,而这个函数又永远不会跳出递归,所以便不断地在内存占据空间,这种死递归没有限制,会无限循环下去,而栈内存的空间是有限的,最终便出现栈溢出的报警。

  我们现在可以尝试去总结函数递归所应该满足的条件:

递归存在限制条件,当满⾜这个限制条件的时候,递归便不再继续。
每次递归调⽤之后越来越接近这个限制条件。
  上述的函数便是在没有限制中不断死循环,才出现了上述的情况。接下来让我们在实例中体会这两个条件的必要之处吧。

3.实例:利用递归方法求n的阶乘

  计算n的阶乘(不考虑溢出),n的阶乘就是1~n的数字累积相乘。

  我们知道n的阶乘的公式: n=  n ∗ (n − 1)!

  这样的思路就是把⼀个较⼤的问题,转换为⼀个与原问题相似,但规模较⼩的问题来求解的。
  n!---> n*(n-1)!
  (n-1)! ---> (n-1)*(n-2)!
  ....
  直到n是1或者0时,不再拆解。
  再稍微分析⼀下,当 n<=1 的时候,n的阶乘是1,其余n的阶乘都是可以通过上述公式计算。

  那我们就可以写出函数Fact求n的阶乘,假设Fact(n)就是求n的阶乘,那么Fact(n-1)就是求n-1的阶乘,函数如下:

int Fact(int n)
{if(n<=0)return 1;elsereturn n*Fact(n-1);
}
#include <stdio.h>
int Fact(int n)
{if(n<=0)return 1;elsereturn n*Fact(n-1);
}
int main()
{int n = 0;scanf("%d", &n);
int ret = Fact(n);
printf("%d\n", ret);return 0;}

  在这个函数当中,函数在递归的时候不断靠近n=0这一个限制条件,这也完美满足了函数递归的条件。希望大家都能有所收获,喜欢我的话可以点点赞,加个关注,评论一下,谢啦,爱你们。

http://www.hkea.cn/news/351406/

相关文章:

  • 网站优化怎么做 有什么技巧东莞seo建站
  • 什么网站可以做游戏机疫情最新数据消息
  • 企业网站开发报价单巩义网络推广
  • 网站开发技术交流群免费域名申请网站
  • 手机网站一键分享怎么知道自己的域名
  • 做网站 做好把我踢开北京网站搭建哪家好
  • 网站如何做引流刷外链网站
  • wordpress 站点地址关注公众号一单一结兼职
  • 合肥网站建设第一品牌个人seo外包
  • 省心的免费建站服务热线四川seo关键词工具
  • 网站总是跳转dede58seo对网络推广的作用是
  • seo排名怎么提高seo排名优化软件有用
  • 江门论坛建站模板黑帽seo联系方式
  • 政府网站信息内容建设专项检查搜索引擎排名优化seo课后题
  • 个人做的好的淘宝客网站软文营销推广
  • 城乡建设委员会网站河北seo推广公司
  • 某网站栏目策划2022十大热点事件及评析
  • 德清网站建设中心优化大师官方免费下载
  • 生日网页制作免费网站制作代做网页设计平台
  • 学校类网站特点游戏优化大师官网
  • 手机电视网站大全河南网站建设定制
  • zblog做的商城网站上海有实力的seo推广咨询
  • 免费网站模板psd网络营销的整体概念
  • 网站模板下载破解版环球军事新闻最新消息
  • 徐汇苏州网站建设东莞免费建站公司
  • 厦门网站建设哪家强深圳网站维护
  • 政府网站新媒体平台建设关键词权重查询
  • 重庆网站建设制作公司百度客服人工在线咨询电话
  • 微信公众号平台入口官网奶盘seo伪原创工具
  • 泉州网站建设公司推荐宁德市地图