C 语言函数递归 - 1

函数的递归

什么是递归呢??
 程序调用自身的编程技巧称为递归(recursion),递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常
 把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可描述出解题过程所需要的多次重复运算,大大减少了程序的代码量


 递归的主要思考方式在于:化繁为简。
 
 递归的两个必要条件
 1.存在限制条件,当满足这个限制条件的时候,递归便不再继续
 2.每次递归调用之后越来越接近这个限制条件。

代码

#include<stdio.h>
void print(unsigned int n) {  //定义一个无整型变量来接受nub的值
	if (n > 9) {           
		print(n/10);      //只要大于就都除10,因为顶的是整型所以后面的小数全部不要这样就会拿到第一个(比如屏幕输入的123,那么一直除10就会的到1.23,但是我这里定义的是整型所以这里变成1)然后就停止调用print(),因为1<9的所以就不成立就会打印第一个数字1,然后程序就会递归回去,1 2 3 依次打印(因为刚刚打印了1 print()程序就递归回去)

	printf("%d  ", n % 10);


}


int main() {
	unsigned int  nub = 0; //定义一个无整型变量
	scanf("%u", &nub);     //从屏幕中获取nub的值
	print(nub);            //将nub地址传过去
	return 0;
}

 思维导图

注意:条件要接近限制条件,不然会到时stack over 栈溢出的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值