递归算法2 #
- 递归函数的三要素-递归的定义
- 递归函数的三要素-递归的拆解
- 递归函数的三要素-递归的出口
递归的定义 #
在使用递归算法之前,我们需要首先明确递归函数的定义,这一点和普通函数定义一样,包括递归函数的功能、参数、返回值都要有明确的定义。这些都是根据解决问题的需要由自己定义的。
我们以求解从1累加到n的和为例,首先定义mysum(n)函数,该函数的功能就是返回1~n累加的和。
def mysum(n):#mysum函数功能:返回1~n累加和,参数为n pass
递归的拆解 #
def mysum(n): sum= mysum(n-1)+n#递归函数地拆解 return sum
递归的出口 #
def mysum(n): if n==1: return 1 #递归的出口 sum= mysum(n-1)+n#递归的拆解 return sum
小结 #
习题 #
- 在mysum(n)的递归函数中,我们将递归的出口放在了递归问题拆解的前面,想一想为什么?能够交换位置吗?
- 使用循环迭代的方式实现mysum(n)的功能,并尽量找出它与递归方式的不同