C语言递归函数示例:阶乘计算

以下是一个简单的递归传递函数示例,它可以计算一个给定数的阶乘:

#include <stdio.h>

int factorial(int n)
{
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    } 
}

int main()
{
    int n = 5;
    int result = factorial(n);
    printf("%d! = %d\n", n, result);
    return 0;
}

该函数的递归过程如下:

  1. factorial(5) 被调用时,它会检查 n 是否等于0;
  2. 因为 n 不为0,所以它会调用 factorial(4) 并返回 5 * factorial(4)
  3. factorial(4) 会调用 factorial(3) 并返回 4 * factorial(3)
  4. factorial(3) 会调用 factorial(2) 并返回 3 * factorial(2)
  5. factorial(2) 会调用 factorial(1) 并返回 2 * factorial(1)
  6. factorial(1) 会检查 n 是否为0,并返回 1
  7. 所有递归调用都返回并计算结果:factorial(1) = 1factorial(2) = 2 * 1 = 2factorial(3) = 3 * 2 = 6factorial(4) = 4 * 6 = 24factorial(5) = 5 * 24 = 120
  8. 最终结果 120 被返回给调用函数 main()
C语言递归函数示例:阶乘计算

原文地址: https://www.cveoy.top/t/topic/mjuy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录