C语言--函数递归

目录

1、什么是递归?

1.1 递归的思想

1.2 递归的限制条件

2. 递归举例

2.1 举例1:求n的阶乘

2.2 举例2:顺序打印⼀个整数的每⼀位

 3. 递归与迭代

扩展学习:


早上好,下午好,晚上好

1、什么是递归?
 

递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数 ⾃⼰调⽤⾃⼰
写⼀个史上最简单的C语⾔递归代码:
#include <stdio.h>
int main()
{
 printf("hehe\n");
 main();//main函数中⼜调⽤了main函数
 return 0;
}
上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演⽰递归的基本形式,不是为了解决问
题,代码最终也会陷⼊死递归,导致栈溢出

1.1 递归的思想

把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再 被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。
递归中的 递就是递推 的意思, 归就是回归 的意思

1.2 递归的限制条件

递归在书写的时候,有2个必要条件:
递归存在 限制条件 ,当满⾜这个限制条件的时候,递归便不再继续。
每次递归调⽤之后 越来越接近 这个限制条件

2. 递归举例

2.1 举例1:求n的阶乘

⼀个正整数的阶乘(factorial)是所有⼩于及等于该数的正整数的积,并且0的阶乘为1。
⾃然数n的阶乘写作n!。

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

 n的阶乘的公式: n! =  n ∗ (n − 1)!

举例:
       5! = 5*4*3*2*1
       4! = 4*3*2*1
 所以: 5! = 5*
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pzn)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值