Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หาค่าแฟกทอเรียล (Factorial)


แฟกทอเรียล (Factorial) ของจำนวนเต็มไม่ติดลบ n คือ ผลคูณของจำนวนเต็มบวกทั้งหมดที่น้อยกว่าหรือเท่ากับ n

ตัวอย่าง: แฟกทอเรียลของ 5 คือ 120

5! = 5 × 4 × 3 × 2 × 1 = 120

สามารถหาค่าแฟกทอเรียลได้ 2 วิธี: แบบไม่ใช้ Recursive และแบบใช้ Recursive

วิธีที่ 1: แบบไม่ใช้ Recursive (ใช้ลูป for)

#include <iostream>
using namespace std;

int main() {
    int n = 5, fact = 1, i;
    for(i = 1; i <= n; i++)
        fact = fact * i;
    cout << "Factorial of " << n << " is " << fact;
    return 0;
}

ผลลัพธ์

Factorial of 5 is 120

ลูป for วนจาก 1 ถึง n ในแต่ละรอบจะคูณ fact กับ i ค่าสุดท้ายของ fact จะเป็นผลคูณของตัวเลข 1 ถึง n

วิธีที่ 2: แบบใช้ Recursive

#include <iostream>
using namespace std;

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

int main() {
    int n = 5;
    cout << "Factorial of " << n << " is " << fact(n);
    return 0;
}

ผลลัพธ์

Factorial of 5 is 120

ฟังก์ชัน fact() เป็นฟังก์ชัน recursive หาก n เป็น 0 หรือ 1 จะคืนค่า 1 มิฉะนั้นจะคืนค่า n * fact(n-1)