LeeStar Super Moderator
Tổng số bài gửi : 407 Điểm Post : 12401 Thanked : 6 Ngày sinh : 18/06/1991 Ngày tham gia : 16/04/2010 Tuổi : 32 Đến từ : 당신을 사랑합니다
| Tiêu đề: Bài toán Tháp Hà Nội (C++) Mon May 17, 2010 7:35 pm | |
| Bài toán Tháp Hà Nội: Bài toán tháp Hà Nội (tiếng Anh gọi là Tower of Hanoi hay Towers of Hanoi) xuất phát từ [You must be registered and logged in to see this link.]. Mục đích của bài toán là thực hiện được yêu cầu của trò chơi. Dạng bài toán thông dụng nhất là: "Người chơi được cho ba cái cọc và một số đĩa có kích thước khác nhau có thể cho vào các cọc này. Ban đầu sắp xếp các đĩa theo trật tự kích thước vào một cọc sao cho đĩa nhỏ nhất nằm trên cùng, tức là tạo ra một dạng hình nón. Người chơi phải di chuyển toàn bộ số đĩa sang một cọc khác, tuân theo các quy tắc sau:
- một lần chỉ được di chuyển một đĩa
- một đĩa chỉ có thể được đặt lên một đĩa lớn hơn (không nhất thiết
hai đĩa này phải có kích thước liền kề, tức là đĩa nhỏ nhất có thể nằm trên đĩa lớn nhất)".
[You must be registered and logged in to see this image.]Mô hình trò chơi [You must be registered and logged in to see this image.]Ví dụ minh họa Thuật toán #include <cstdlib.h> #include <iostream.h> #include <conio.h> using namespace std; void chuyen(int sodia, char CotNguon, char CotDich, char CotTG) { if (sodia>0) { chuyen(sodia-1, CotNguon, CotTG, CotDich); cout<<<"->"<<<"\\n"; chuyen(sodia-1, CotTG, CotDich, CotNguon); } } int main() { char CotNguon,CotDich,CotTG; int n; cout<<"Hay nhap so dia: "; cin>>n; chuyen(n,'A','C','B'); getch(); } | |
|