递归函数求n的阶乘
递归函数求n的阶乘
递归函数是一种特殊的函数,在函数体内调用自身,实现循环的效果。在程序设计中,递归函数比循环语句可以更快编写,但也有一定弊端,即消耗的内存多,可能影响程序的运行性能。
c语言用递归函数求n的阶乘 要使用递归函数求n的阶乘,首先要确定函数的递归出口(或称递归边界),即递归函数调用时的终止条件。这里,函数递归出口即求阶乘的初始条件,也就是当n=1时,其阶乘等于1,因此可以将函数的递归出口定义为:
if n = 1
return 1
接下来,通过递归调用自身来实现函数功能,这里,要求n的阶乘,即求n的结果应该等于n乘以n-1的阶乘结果,因此可以将函数的递归公式定义为:
return n * factorial(n-1)
以上就是递归函数求n的阶乘的通用公式,实现代码如下,使用C语言语法:
int factorial(int n) {
if(n == 1)
return 1;
else
return n * factorial(n-1);
}
以上代码定义的函数就可以求n的阶乘结果,例如调用函数factorial(5),由于n=5,不满足递归出口条件,因此继续执行递归公式,factorial(5) = 5 * factorial(4),依次类推,factorial(4) = 4 * factorial(3),factorial(3) = 3 * factorial(2), factorial(2) = 2 * factorial(1),
当进入函数factorial(1)时,n=1,满足递归出口条件,return 1,即factorial(1) = 1,依次回归,factorial(2) = 2 * 1 = 2, factorial(3) = 3 * 2 = 6,factorial(4) = 4 * 6 = 24,最后,factorial(5) = 5 * 24 = 120,即求得n=5时,阶乘结果为120。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论