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

长春自助建站软件职业技能培训网

长春自助建站软件,职业技能培训网,徐州市小程序制作,万盛经开区规划建设局网站1. 递归是什么&#xff1f; 递归是学习C语言函数绕不开的一个话题&#xff0c;那什么是递归呢&#xff1f; 递归其实是一种解决问题的方法&#xff0c;在C语言中&#xff0c;递归就是函数自己调用自己。 写一个史上最简单的C语言递归代码&#xff1a; #include <stdio.h>…

1. 递归是什么?
递归是学习C语言函数绕不开的一个话题,那什么是递归呢?
递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。
写一个史上最简单的C语言递归代码:

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

上述就是一个简单的递归程序,只不过上面的递归只是为了演示递归的基本形式,不是为了解决问
题,代码最终也会陷入死递归,导致栈溢出。

 递归的思想:
把一个大型复杂问题层层转化为一个与原问题相似,但规模较小的子问题来求解;直到子问题不能再被拆分,递归就结束了。所以递归的思考方式就是把大事化小的过程。
递归中的递就是递推的意思,归就是回归的意思,接下来慢慢来体会.

2. 递归的限制条件
递归在书写的时候,有2个必要条件:
• 递归存在限制条件,当满足这个限制条件的时候,递归便不再继续。
• 每次递归调用之后越来越接近这个限制条件。
在下面的例子中,我们逐步体会这2个限制条件。

3. 递归举例
3.1 举例1:求n的阶乘
计算n的阶乘(不考虑溢出),n的阶乘就是1~n的数字累积相乘。
3.1.1 分析和代码实现
我们知道n的阶乘的公式: n! = n ∗ (n − 1)!

举例:5! = 5*4*3*2*14! = 4*3*2*1所以:5! = 5*4!

这样的思路就是把一个较大的问题,转换为一个与原问题相似,但规模较小的问题来求解的。
n!---> n*(n-1)!

        (n-1)! ---> (n-1)*(n-2)!
....
直到n是1或者0时,不再拆解

再稍微分析一下,当n<=1 的时候,n的阶乘是1,其余n的阶乘都是可以通过上述公式计算。
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太大的情况,n太大存在溢出):

 

http://www.shuangfujiaoyu.com/news/37389.html

相关文章:

  • 广州三合一网站建设廊坊seo排名公司
  • 医疗网站建设信息新站网站推广公司
  • 怎么给网站做关键词巢湖seo推广
  • 网页设计及网站建设的相关概念广点通推广登录入口
  • 手机网站app开发百度导航下载2020新版语音
  • 怎样学习做网站2022年最火的新闻摘抄
  • 酒店网站建设公司企业邮箱账号
  • 快速网站建设搜索引擎有哪些网站
  • 大连优化公司北京网络seo推广公司
  • 怎样在百度做网站表白全球疫情最新数据
  • 卫浴洁具公司网站模板站外引流推广渠道
  • 昆明做网站设计成人教育机构排行前十名
  • 网站赌博做庄是怎样做五年级上册优化设计答案
  • wordpress 采集伪原创排名优化推广
  • 广州 网站开发 公司世界大学排名
  • 网站建设网站搭建sem竞价推广托管
  • 哪些网站做推广性价比高销售怎么找客户源
  • 台州椒江网站建设公司公司网页制作
  • 低价网站建设哪个好广州白云区新闻头条最新消息今天
  • 免费源码的商城网站去哪里找需要推广的app
  • 新疆建设兵团二师网站广东省最新疫情
  • 一起做业英语网站数字营销成功案例
  • 怎样用云服务器做网站推广平台排行榜
  • 怎么做快法务类似网站现在百度怎么优化排名
  • 宝塔网站建设跳转微信可打开网络营销的十种方法
  • 怎么建一个网站百度新闻发布
  • 网站建设 常用字体四川全网推网络推广
  • 苏州企业网站seo网络营销师主要做什么
  • wordpress打开很卡seo及网络推广招聘
  • 杭州观建设计网站怎么制作一个网站首页