C++ 程序:使用递归计算数字的阶乘


2023年2月9日, Learn eTutorial
1572

这个 C++ 程序是使用递归计算阶乘的示例。

数字的阶乘是什么意思?

数字的阶乘定义为从 1 到该数字的所有整数的乘积。我们无法计算负数的阶乘,零的阶乘为一。感叹号表示数字的阶乘“!”。例如,5! = 1*2 *3*4*5 = 120。

n! =  1 * 2 * 3 * 4 *……..* n。

C++ 中的递归

递归是一个函数不断调用自身的過程,直到满足某些条件。为了防止无限递归,可以使用 if...else 语句(或类似方法)

要了解更多关于 C++ 中的递归,请访问我们的递归教程

如何在 C++ 中使用递归计算数字的阶乘?

为了找到阶乘,我们要求用户输入一个正整数并将该数字读取到变量中。定义一个递归函数 factorial () 来计算数字的阶乘。将输入的数字传递给阶乘函数。

int factorial(int n) 

在此函数中,数字 n 乘以 (n – 1) 的阶乘。为此,数字 (n – 1) 再次传递给 factorial () 函数,直到该值达到 1。最后,将结果打印为阶乘。

C++ Recursion

算法

步骤 1: 调用头文件 iostream

步骤 2: 使用 namespace std

步骤 3:定义一个函数 factorial ();
             n * factorial ( n – 1)  直到 n > 1;
             返回该值  
             否则返回 1;

步骤 4: 打开整数类型主函数;int main()。

步骤 5: 声明整数变量;n;

步骤 6: 打印一条消息,要求输入一个不大于 12 的正整数。

步骤 7: 将值读取到变量 n 中;

步骤 8: 调用函数 factorial(n);

步骤 9: 退出;
 

C++ 源代码

                                          #include<iostream>
using namespace std;

int factorial(int n);

int main() {

  int n;

  cout << "Enter a positive integer less than 12: ";
  cin >> n;

  cout << "Factorial of " << n << " = " << factorial(n);

  return 0;
}

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

输出

Enter a positive integer less than 12: 6
Factorial of 6 = 720