📜  计算阶乘 - C++ (1)

📅  最后修改于: 2023-12-03 15:12:05.394000             🧑  作者: Mango

计算阶乘 - C++

阶乘是指自然数 $n$ 的阶乘,$n$ 的阶乘表示为 $n!$,其结果等于 $1\times2\times3\times...\times n$。当 $n=0$ 时,$0!=1$。

实现计算阶乘的功能可以使用递归或迭代两种方法。下面分别进行介绍。

递归实现

递归方法是将问题分成更小的子问题,直到问题可以被解决。计算阶乘的递归实现如下:

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

代码中定义了一个函数 fact,接收一个整数参数 n 作为阶乘的计算值。递归的基本情况是当 n=0 时,返回值为 1。否则,计算当前的阶乘值 n 乘以 $(n-1)!$。

迭代实现

迭代实现是假设问题可以被解决,然后循环执行直到得到所需的结果。计算阶乘的迭代实现如下:

int fact(int n) {
  int result = 1;
  for (int i = 1; i <= n; i++) {
    result *= i;
  }
  return result;
}

代码中定义了一个函数 fact,接收一个整数参数 n 作为阶乘的计算值。使用循环计算 $1\times2\times3\times...\times n$ 的结果,然后返回结果值。

总结

递归和迭代是计算阶乘的两种实现方法,两者都可以实现阶乘的计算功能。在实际开发中,应该根据问题的本质和代码的效率综合考虑选择适当的实现方法。