c++

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

小樊
94
2024-09-27 10:29:11
栏目: 编程语言

在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。

0
看了该问题的人还看了