什么是递归函数
一种计算过程,如果其中每一步都要用到前一步或前几步的结果,称为递归的。用递归过程定义的函数,称为递归函数,例如连加、连乘及阶乘等。凡是递归的函数,都是可计算的,即能行的。
编程语言中的对递归定义:
- 编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。
数学中对递归的定义:
- 在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。
递归的条件:
- 一个含直接或间接调用本函数语句的函数被称之为递归函数,在上面的例子中能够看出,它必须满足以下两个条件:
- 1)执行递归函数将反复调用其自身,每调用一次就进入新的一层。
- 2)必须有结束条件,即必须有一个终止处理或计算的准则。
递归函数的应用
应用一: 计算阶乘(factorial)
定义:一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!
任何大于等于1 的自然数n 阶乘表示方法:n! = 1*2*3* ...*(n-1)*n
,或,n! = n *(n-1)!
阶乘的规律:
1! = 1 2! = 2 × 1 = 2 × 1! 3! = 3 × 2 × 1 = 3 × 2! 4! = 4 × 3 × 2 × 1 = 4 × 3! ... n! = n × (n-1)!
<