一、递归的作用
1)替代多重循环,如n皇后问题;
多要逐步遍历问题;
2)解决本来就是用递归形式定义的问题,如波兰表达式问题、四则运算表达式求值问题;
多要分类;
3)将问题分解为规模更小的子问题进行求解。如爬楼梯问题、放苹果问题;
多要先分类再列出递推式;
分析:
阶乘的求解:列递推式
汉诺塔问题:分步
n皇后问题:逐步遍历
波兰表达式:分类
四则运算表达式求值问题:分类
爬楼梯问题:分类后推出递推式
放苹果问题:先根据题目参数大小不同的情况来分类,再根据放法分类列出递推式
二、使用递归的场景
题目需求满足(一)中递归作用的题目;
三、写递归的步骤
1)根据(一)分析题目中递归的作用确定其思想是大致以下哪一种:
1.逐步遍历问题
2.分类
3.分类后列递推式
2)根据思想写出函数基本框架后,确定递归的终止条件;
确定方法(每一种方法都要结合题目要求):
1.根据每一处递归函数调用时的参数来判断参数的范围,从而根据参数范围确定终止条件;
2.在参数满足第一种确定方法的范围时,有时终止条件可以有多组;
3.待补充......