Recursive function = ฟังก์ชันที่เรียกตัวเองในตัวเอง
ตัวอย่าง: Factorial
fact(5) = 5 * fact(4)
= 5 * 4 * fact(3)
= 5 * 4 * 3 * fact(2)
= 5 * 4 * 3 * 2 * fact(1)
= 120
โปรแกรมที่ 1: Factorial ด้วย Recursion
#include <stdio.h>
int fact(int n) {
if (n == 1 || n == 0)
return 1;
else
return n * fact(n-1);
}
main() {
int n, f;
printf("Enter a number: ");
scanf("%d", &n);
f = fact(n);
printf("Factorial value = %d", f);
}
ผลลัพธ์
Enter a number: 5
Factorial value = 120
โปรแกรมที่ 2: Reverse Number ด้วย Recursion
#include <stdio.h>
int sum = 0, rem;
int revNumFunction(int num) {
if (num) {
rem = num % 10;
sum = sum * 10 + rem;
revNumFunction(num / 10);
} else
return sum;
}
int main() {
int num, revNum;
printf("Enter number: ");
scanf("%d", &num);
revNum = revNumFunction(num);
printf("Reversed number: %d", revNum);
return 0;
}
ผลลัพธ์
Enter number: 1357
Reversed number: 7531