recursion)。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

① 各种数学问题,例如:8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子问题。

② 各种算法中也会使用到递归,例如:快排,归并排序,二分查找,分治算法等。

③ 将用栈解决的问题——>递归代码比较简洁。

该问题是国际国际象棋棋手马克斯.贝瑟尔于1848年提出。在8*8格的国际象棋上摆放八个皇后,使其不能互相攻击。即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。