解题思路:
求n!可以用递推方法,即从1开始,乘以2,再乘以3……一直乘到n。这种方法容易理解,也容易实现。递推法的特点是从一个已知的事实出发,按一定规律推出下一个事实,再从这个新的已知的事实出发,再向下推出一个新的事实。这是和递归不同的。
求n!也可以用递归方法,即5!=4!x5,而4!=3!x4,…,1!=1。
编写程序:
运行结果:
递归是一种典型的算法,许多问题既可以用非递归方法来处理,也可以用递归方法来处理。在实现递归时,在时间和空间上的开销比较大,但符合人们的思路,程序容易理解。人们可以不去考虑实现递归的过程细节,只须写出递归公式和递归结束条件(即边界条件),即可很容易写出递归函数。由于计算机的性能提高很快,人们首先考虑的往往不再是效率问题,而是程序的可读性问题。因此,许多人优先考虑用递归方法编程。