本文主要是介绍LinuxC语言中的递归和循环,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、用阶乘的例子来解释递归思想和如何写递归
- 1.递归的定义
- 2.图 5.2. factorial(3)的调用过程的解释,理解了以后直接用即可!别用此方法证明递归正确性
- 3.推断递归函数的正确性的方法
- 4.递归总结
- 5.写递归的练习
- 二、循环迭代
- 1.递归能解决的问题,循环也能解决
- 2.递归思想(函数式编程)与循环思想(命令式编程)的对比
- 3.将递归写成循环的习题
一、用阶乘的例子来解释递归思想和如何写递归
1.递归的定义
2.图 5.2. factorial(3)的调用过程的解释,理解了以后直接用即可!别用此方法证明递归正确性
3.推断递归函数的正确性的方法
4.递归总结
5.写递归的练习
说明:
- 画红色框框内的是错误写法,一定要注意,不能这么写!!对比着图5.2去体会,重点是局部变量入栈和出栈的思想!!
二、循环迭代
1.递归能解决的问题,循环也能解决
(1)上面介绍了用递归求n!的方法,其实每次递归调用都在重复做同样一件事,就是把n乘到(n-1)!上然后把结果返回。
虽说是重复,但每次做都稍微有一点区别(n 的值不一样) ,这种每次都有一点区别的重复工作称为迭代(Iteration) 。
(2)虽然迭代用递归来做就够了,但C语言提供了循环语句使迭代程序写起来更方便。例如factorial 用 while 语句可以写成:
说明如下:
2.递归思想(函数式编程)与循环思想(命令式编程)的对比
3.将递归写成循环的习题
这篇关于LinuxC语言中的递归和循环的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!