C语言使用递归计算数字阶乘的程序

要理解这个示例,您应该了解以下 C 编程 主题


正数 n 的阶乘由下式给出:

factorial of n (n!) = 1 * 2 * 3 * 4 *...  * n

负数的阶乘不存在。0的阶乘是1

在本例中,您将学习如何使用递归查找一个数的阶乘。访问此页面了解如何使用循环查找一个数的阶乘


使用递归计算数字的阶乘

#include<stdio.h>
long int multiplyNumbers(int n);
int main() {
    int n;
    printf("Enter a positive integer: ");
    scanf("%d",&n);
    printf("Factorial of %d = %ld", n, multiplyNumbers(n));
    return 0;
}

long int multiplyNumbers(int n) {
    if (n>=1)
        return n*multiplyNumbers(n-1);
    else
        return 1;
}

输出

Enter a positive integer: 6
Factorial of 6 = 720

假设用户输入了6。

最初,multiplyNumbers()main()调用,并将6作为参数传递。

然后,从同一个函数(递归调用)将5传递给multiplyNumbers()。在每次递归调用中,参数n的值都会减1。

n的值小于1时,不再有递归调用,阶乘最终会被返回到main()函数。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战