Khái niệm
Hàm đệ quy gọi chính nó trong thân hàm. Cần điều kiện dừng (base case) để tránh vô tận.
Ví dụ: Tính giai thừa n!
fact(5) = 5 * fact(4)
= 5 * 4 * fact(3)
= 5 * 4 * 3 * fact(2)
= 5 * 4 * 3 * 2 * fact(1)
= 5 * 4 * 3 * 2 * 1
= 120
Chương trình
#include <stdio.h>
int fact(int n);
int main() {
int n, f;
printf("Nhap so: ");
scanf("%d", &n);
f = fact(n);
printf("Giai thua = %d", f);
return 0;
}
int fact(int n) {
if (n == 1 || n == 0)
return 1;
else
return n * fact(n - 1);
}
Kết quả
Nhap so: 5 Giai thua = 120