黑马程序员-C语言-递归

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


参加基础测试的时候,后面有两道递归的题目没有写,只有7.7分,看到室友得了9分感觉自己很有可能要被淘汰啊。进黑马是要按分数排序的,瞬间感觉自己被那个“注:能完成多少就提交多少,不必太在意这项得分。。。”给坑了。当时希望尽快走完流程,再看到那个注所以就真的把递归的两道题直接放弃了。

虽然自己在社团里面天天接触到的是C语言,但是在编写单片机程序的时候确实没有用到递归,所以这一块也确实不熟,知道有这么个东西,但是不会用。这一次写博客就从它开始了,算是对自己的查漏补缺吧!

递归的定义:

       程序调用自身的编程技巧叫做递归。说白了就是函数自己调用自己。递归通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。


递归的2个条件:

1.    自己调用自己

2.    必须有一个明确的返回值


递归的缺点:

1.    递归的运行效率较低

2.    递归次数过多容易造成栈溢出

由于上面的缺点,,所以一般不提倡用递归算法设计程序。除非没有更好的算法或者某些特定情况,递归更为合适的时候。


题目:

有八个人坐在一起,问第8个人多少岁?他说比第7个人大3岁。问第7个人多少岁?他说比第6个人大3岁。问第6个人多少岁?他说比第5个人大3岁。问第5个人多少岁?他说比第4个人大3岁,以此类推,最后问第1个人多少岁?他说是10岁。请问第8个人多大?(C语言)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值