Giải bài toán Tháp Hà Nội (Tower of Hanoi) sử dụng đệ quy trong C/C++

Trong bài viết này, chúng ta sẽ tìm hiểu cách giải bài toán Tháp Hà Nội bằng phương pháp đệ quy trong ngôn ngữ lập trình C/C++. Bài toán này là một trò chơi toán học thú vị và có nhiều ứng dụng trong lĩnh vực khoa học máy tính.

Bài toán Tháp Hà Nội

Bài toán Tháp Hà Nội gồm 3 cột và một số đĩa có kích thước khác nhau. Mục tiêu của trò chơi là di chuyển tất cả các đĩa từ cột ban đầu sang cột đích, tuân thủ các quy tắc sau:

  • Chỉ được di chuyển một đĩa một lần.
  • Một đĩa chỉ có thể được đặt lên một đĩa lớn hơn.

Qui tắc giải bài toán Tháp Hà Nội

Cách giải bài toán Tháp Hà Nội bằng phương pháp đệ quy như sau:

  1. Đặt một cột làm cột trung gian.
  2. Di chuyển n-1 đĩa từ cột ban đầu sang cột trung gian.
  3. Di chuyển đĩa lớn nhất sang cột đích.
  4. Di chuyển n-1 đĩa từ cột trung gian sang cột đích.

Với việc áp dụng phương pháp đệ quy, chúng ta có thể giải bài toán Tháp Hà Nội với bất kỳ số lượng đĩa nào.

Mã nguồn C/C++

Dưới đây là mã nguồn C/C++ để giải bài toán Tháp Hà Nội:

#include 

void towerOfHanoi(int n, char fromRod, char toRod, char auxRod) {
  if (n == 1) {
    printf("Di chuyển đĩa 1 từ cột %c sang cột %cn", fromRod, toRod);
    return;
  }
  towerOfHanoi(n - 1, fromRod, auxRod, toRod);
  printf("Di chuyển đĩa %d từ cột %c sang cột %cn", n, fromRod, toRod);
  towerOfHanoi(n - 1, auxRod, toRod, fromRod);
}

int main() {
  int n = 3; // Số lượng đĩa
  towerOfHanoi(n, 'A', 'C', 'B'); // Gọi hàm giải bài toán
  return 0;
}

Kết luận

Bài toán Tháp Hà Nội là một bài toán thú vị trong lĩnh vực toán học và có ứng dụng rộng rãi trong khoa học máy tính. Phương pháp giải bài toán bằng đệ quy giúp chúng ta tiếp cận với vấn đề một cách hiệu quả và tinh gọn. Hy vọng bài viết này đã giúp bạn hiểu thêm về cách giải bài toán Tháp Hà Nội sử dụng đệ quy trong C/C++.

FEATURED TOPIC