溫馨提示×

C++遞歸算法怎樣實(shí)現(xiàn)階乘計(jì)算

c++
小樊
81
2024-09-27 10:29:11
欄目: 編程語言

在C++中,使用遞歸算法實(shí)現(xiàn)階乘計(jì)算的方法如下:

#include <iostream>

// 階乘函數(shù)聲明
unsigned long long factorial(int n);

int main() {
    int number;
    std::cout << "請輸入一個正整數(shù): ";
    std::cin >> number;

    // 檢查輸入是否為正整數(shù)
    if (number < 0) {
        std::cout << "輸入錯誤!請輸入一個正整數(shù)。" << std::endl;
        return 1;
    }

    // 計(jì)算階乘并輸出結(jié)果
    unsigned long long result = factorial(number);
    std::cout << number << "的階乘是: " << result << std::endl;

    return 0;
}

// 階乘函數(shù)定義
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的函數(shù),該函數(shù)接受一個整數(shù)參數(shù)n并返回一個unsigned long long類型的值。在main函數(shù)中,我們獲取用戶輸入的整數(shù),檢查它是否為正整數(shù),然后調(diào)用factorial函數(shù)計(jì)算階乘并輸出結(jié)果。

factorial函數(shù)的實(shí)現(xiàn)基于遞歸算法。當(dāng)n為0或1時,函數(shù)返回1(基本情況)。否則,函數(shù)返回n乘以factorial(n-1)的結(jié)果(遞歸情況)。這將一直遞歸下去,直到n減小到0或1。

0