- 定义
- 为什么可以使用递归
- 递归函数的实现原理(程序内部)
- 带有多个return 出口的递归函数
- 有返回值
- 无返回值
- 递归函数的测试
- 递归函数中局部变量和全局变量
- 递归函数在结构上分三部分
- 递归函数调用自身前
- 递归调用自身时
- 递归调用自身后
- 其中在逻辑上递归函数也可以分为三部分
- 既然是递归函数,那么停止递归调用的终止条件是什么(在什么情况下函数会继续进行递归调用)
- 递归函数要完成的任务是什么(逻辑函数体:if-else、循环、非二者结构)
- 函数是否有返回值,如果有返回值,返回值应该是什么
其中,在函数调用自身前,包含的结构都是在递归 调用前实现的,也就是说,在递减的递的过程中,这是函数要完成的任务;在调用自身之后,写出来的代码都是在递归调用完成之后(归的过程中,栈弹出的过程中)实现的;而在函数调用自身时,我们要关注的就是函数是否要有返回值,是否要传递返回值,如果传递返回值,那么返回值如何处理和利用。
题解
17.电话号码的组合
解题注意点:
- 直接操作字符串会更方便
- 字符串只能使用 += ,而不能使用 -=
- string数组可以直接
String map[]={"0", "12", "34"}
进行赋值 - 两层遍历可以使用index来控制外层变量(每一次递归调用就是一层遍历)
- 字符转int型,可以直接使用
c-'0'
这样的运算符获得字符c到字符0的位置差,即int类型值