Menu
CoddyTech

Cơ bản về đệ quy

Thuộc phần Nền tảng cơ bản trong hành trình C của Coddy. Bài học 50 trên 63.

Đệ quy là một kỹ thuật trong đó hàm gọi chính nó để giải quyết một vấn đề. Cách này giống như giải quyết một vấn đề lớn bằng cách chia nó thành những vấn đề nhỏ hơn, tương tự.

Hãy cùng xem một hàm đệ quy đơn giản để tính giai thừa:

int factorial(int n) {
    // Trường hợp cơ sở: giai thừa của 0 hoặc 1 là 1
    if (n <= 1) {
        return 1;
    }
    
    // Trường hợp đệ quy: n! = n * (n-1)!
    return n * factorial(n - 1);
}

Mỗi hàm đệ quy cần có:

  1. Trường hợp cơ sở để dừng đệ quy
  2. Trường hợp đệ quy tiến gần đến trường hợp cơ sở

Ví dụ, tính factorial(3):

  • factorial(3) gọi factorial(2)
  • factorial(2) gọi factorial(1)
  • factorial(1) trả về 1 (trường hợp cơ sở)
  • factorial(2) trả về 2 * 1 = 2
  • factorial(3) trả về 3 * 2 = 6
challenge icon

Thử thách

Dễ

Tạo một hàm (function) tên là sumToN, dùng đệ quy để tính tổng các số từ 1 đến n.

Ví dụ:

  • sumToN(3) sẽ trả về 6 (1 + 2 + 3)
  • sumToN(5) sẽ trả về 15 (1 + 2 + 3 + 4 + 5)

Hàm của bạn cần:

  1. Dùng trường hợp cơ sở khi n bằng 1 (trả về 1)
  2. Nếu không, trả về n cộng với tổng các số từ 1 đến (n-1)

Tự làm thử

#include <stdio.h>

// Viết hàm (function) sumToN tại đây

// Đừng thay đổi hàm main()
int main() {
    int n;
    scanf("%d", &n);
    
    printf("%d", sumToN(n));
    return 0;
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Nền tảng cơ bản

Tự luyện tập: Trình biên dịch C online