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

โปรแกรม C++ หาแฟกทอเรียลด้วย Recursion (การเรียกซ้ำ)


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

ตัวอย่าง: 4! = 4 × 3 × 2 × 1 = 24

หาแฟกทอเรียลได้ทั้งโปรแกรมแบบ Recursive และ Iterative

ตัวอย่างโค้ด (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 = 4;
    cout << "Factorial of " << n << " is " << fact(n);
    return 0;
}

ผลลัพธ์

Factorial of 4 is 24

อธิบายการทำงาน

main() เรียก fact(n) ส่งค่าที่ต้องการหาแฟกทอเรียล:

cout<<"Factorial of "<<n<<" is "<<fact(n);

ฟังก์ชัน fact() แบบ Recursive:

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

ถ้า n เป็น 0 หรือ 1 คืนค่า 1 (กรณีฐาน) มิฉะนั้น เรียกตัวเองด้วย n-1 และคูณกับ n จนถึงกรณีฐาน