C++递归算法怎样实现阶乘计算

avatar
作者
筋斗云
阅读量:0

在C++中,使用递归算法实现阶乘计算的方法如下:

#include <iostream>  // 阶乘函数声明 unsigned long long factorial(int n);  int main() {     int number;     std::cout << "请输入一个正整数: ";     std::cin >> number;      // 检查输入是否为正整数     if (number < 0) {         std::cout << "输入错误!请输入一个正整数。" << std::endl;         return 1;     }      // 计算阶乘并输出结果     unsigned long long result = factorial(number);     std::cout << number << "的阶乘是: " << result << std::endl;      return 0; }  // 阶乘函数定义 unsigned long long factorial(int n) {     // 基本情况:0! = 1 和 1! = 1     if (n == 0 || n == 1) {         return 1;     }      // 递归情况:n! = n * (n-1)!     return n * factorial(n - 1); } 

这个程序首先包含了头文件以使用输入输出流。然后,我们声明了一个名为factorial的函数,该函数接受一个整数参数n并返回一个unsigned long long类型的值。在main函数中,我们获取用户输入的整数,检查它是否为正整数,然后调用factorial函数计算阶乘并输出结果。

factorial函数的实现基于递归算法。当n为0或1时,函数返回1(基本情况)。否则,函数返回n乘以factorial(n-1)的结果(递归情况)。这将一直递归下去,直到n减小到0或1。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!