9.8 函数的递归调用
9.8.1 递归的基本概念
递归是一种常用的程序设计技术,C语言中,允许函数递归调用。递归是在连续执行某一处理过程时,该过程中的某一步要用到它自身的上一步(或上几步)的结果。在一个程序中,若存在程序自己调用自己的现象就是构成了递归。
如果函数funA在执行过程又调用函数funA自己,则称函数funA为直接递归。如果函数funA在执行过程中先调用函数funB,函数funB在执行过程中又调用函数funA,则称函数funA为间接递归。程序设计中常用的是直接递归。
在数学中递归定义的数学函数是非常常见的。例如,当n为自然数时:
1 当 n=0 时
n * (n-1)! 当 n>0 时
1 当 n=0 时
x * xn-1 当 n>0 时
从数学角度来说,如果要计算出f(n)的值。就必须先算出f(n-1),而要求f(n-1)就必须先求出f(n-2)。这样递归下去直到计算f(0)时为止。由于已知f(0),就可以向回推,计算出f(n)。
本文转自
http://202.113.32.136/jsjjp/class_online/right1008.htm
9.8.1 递归的基本概念
递归是一种常用的程序设计技术,C语言中,允许函数递归调用。递归是在连续执行某一处理过程时,该过程中的某一步要用到它自身的上一步(或上几步)的结果。在一个程序中,若存在程序自己调用自己的现象就是构成了递归。
如果函数funA在执行过程又调用函数funA自己,则称函数funA为直接递归。如果函数funA在执行过程中先调用函数funB,函数funB在执行过程中又调用函数funA,则称函数funA为间接递归。程序设计中常用的是直接递归。
在数学中递归定义的数学函数是非常常见的。例如,当n为自然数时:
1 当 n=0 时
n * (n-1)! 当 n>0 时
1 当 n=0 时
x * xn-1 当 n>0 时
从数学角度来说,如果要计算出f(n)的值。就必须先算出f(n-1),而要求f(n-1)就必须先求出f(n-2)。这样递归下去直到计算f(0)时为止。由于已知f(0),就可以向回推,计算出f(n)。
本文转自
http://202.113.32.136/jsjjp/class_online/right1008.htm