接受一个整型值(无符号),按顺序打印它的每一位--函数递归

这里用一个题理解一下什么是函数的递归

简单来说函数递归就是一个函数在其定义的时候调用自己

这里和函数的嵌套是有区分的

一、函数嵌套是将一个函数作为另一个函数的参数来使用,是调用其他函数,有时候还能好几个函数互相交叉调用;而函数的递归是在定义函数的时候调用自己。

二、函数不能嵌套定义,而递归是可以在函数体内部调用自己的。

 

a096d471f7644d85a7b30ddf3e93d6dc.png

 结果

12bdeb0a7c8c4fd48d806ece414276ad.png

 假设这里输入是 1234

我们这里期待的输出结果是 1 2 3 4

这里运用递归的思想

我们是想把 1234 单独按顺序打印出来,可以把这个任务拆分成:把 123 单独打印出来,然后再单独打印一个 4,这样就降低了原来任务的规模,但是又与原问题相似,这就是递归。

然后再继续拆分成:把 12 单独打印出来,然后单独打印一个 3;继续拆分成:把 1 单独打印出来,然后单独打印一个 2。

这样我们就把原来单独打印 1234 的任务层层剥离出来,逐渐减小问题的规模。

下面是对代码的逐步理解

58c65c1737e84cd78cc9cd99058f3859.jpg

 采用递归编写程序的好处就是只需要少量的程序就可以描述出在执行程序时大量地重复计算,大大减少了代码量

注:

函数递归使用的必要条件:

一、递归必须要有停下来的条件,否则就会不停地调用下去。

二、每一次递归调用后都应该接近停止的条件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值