这里用一个题理解一下什么是函数的递归
简单来说函数递归就是一个函数在其定义的时候调用自己
这里和函数的嵌套是有区分的
一、函数嵌套是将一个函数作为另一个函数的参数来使用,是调用其他函数,有时候还能好几个函数互相交叉调用;而函数的递归是在定义函数的时候调用自己。
二、函数不能嵌套定义,而递归是可以在函数体内部调用自己的。
结果
假设这里输入是 1234
我们这里期待的输出结果是 1 2 3 4
这里运用递归的思想
我们是想把 1234 单独按顺序打印出来,可以把这个任务拆分成:把 123 单独打印出来,然后再单独打印一个 4,这样就降低了原来任务的规模,但是又与原问题相似,这就是递归。
然后再继续拆分成:把 12 单独打印出来,然后单独打印一个 3;继续拆分成:把 1 单独打印出来,然后单独打印一个 2。
这样我们就把原来单独打印 1234 的任务层层剥离出来,逐渐减小问题的规模。
下面是对代码的逐步理解
采用递归编写程序的好处就是只需要少量的程序就可以描述出在执行程序时大量地重复计算,大大减少了代码量
注:
函数递归使用的必要条件:
一、递归必须要有停下来的条件,否则就会不停地调用下去。
二、每一次递归调用后都应该接近停止的条件。