函数递归调用
在调用函数的过程又出现直接或间接的调用该函数本身,称为函数的递归调用 递归函数需要终止条件 例1:用递归求n!. 思路:求n!可以用递推方法,即从1开始,乘2,再乘…直乘到n。这种方法 容易理解,也容易实现。递推法的特点是从一个已知的事实(如1!=1)出发,按一定规律推 出下一个事实(如2!=1! * 2),再从这个新的已知的事实出发,再向下推出一个新的事实(3!=3¥2!)。n!=n* (n- 1)!。 求n!也可以用递归方法,即5!等于4!X5,而4!=3!X4…,1!=1。 例2:Hanoi(汉诺)塔问题。 这是一个古典的数学问题,是一个用递归方法解题 的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座A,B.C。开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(见图。有一个老和尚想把这64个 盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动盘子的步骤。 解题思路: 需要找到一个解决问题的思路,把看似复杂的问题简单化,使问题得以迎刃而解。老和 尚会这样想:假如有另外一一个和尚能有办法将上面63个盘子从一个座移到另一座。那么, 问题就解决了。此时老和尚只须这样做: (1)命令第2个和尚将63个盘子从A座移到B座; (2)自己将1个盘子(最底下的、最大的盘子