Recursion (đệ quy) là khi một hàm tự gọi chính nó để giải một phiên bản nhỏ hơn của cùng một bài toán. Mỗi đệ quy cần một base case (trường hợp cơ sở) để dừng lại và một recursive case (trường hợp đệ quy) tiến dần về phía base case.
Ý tưởng
Chia một bài toán thành các bài toán con giống hệt nhau nhưng nhỏ hơn. Mỗi lần gọi đẩy một khung (frame) lên call stack (ngăn xếp lời gọi); khi trả về thì lấy chúng ra.
Ví dụ
():
n <= :
n * factorial(n - )
factorial()
