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

คำอธิบายฟังก์ชันเรียกซ้ำ (Recursive Function) ในภาษา C พร้อมโปรแกรม


ฟังก์ชันเรียกซ้ำ (Recursive Functions) คือกระบวนการนิยามสิ่งหนึ่งในรูปของมันเอง เป็นฟังก์ชันที่เรียกตัวเองซ้ำในส่วนตัวของฟังก์ชัน

ฟังก์ชัน fact() ที่คำนวณแฟกทอเรียลของจำนวนเต็ม 'N' ซึ่งเป็นผลคูณของจำนวนเต็มทั้งหมดจาก 1 ถึง N

เมื่อ fact() ถูกเรียกด้วยอาร์กิวเมนต์ 1 (หรือ) 0 ฟังก์ชันจะคืนค่า 1 มิฉะนั้น จะคืนค่าผลคูณของ n * fact(n-1) จนกว่า 'n' จะเท่ากับ 1

Fact(5) = 5 * fact(4)
        = 5 * 4 * 3 * fact(3)
        = 5 * 4 * 3 * 2 * fact(2)
        = 5 * 4 * 3 * 2 * 1 * fact(1)
        = 5 * 4 * 3 * 2 * 1
        = 120

ตัวอย่าง

โปรแกรม C สำหรับฟังก์ชันเรียกซ้ำ:

#include <stdio.h>

int fact(int n);

int main() {
    int n, f;
    printf("enter a number: ");
    scanf("%d", &n);
    f = fact(n);
    printf("factorial value = %d", f);
    return 0;
}

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

ผลลัพธ์

เมื่อรันโปรแกรม จะได้ผลลัพธ์ดังนี้:

Enter a number 5
Factorial value = 120