28
1
using System;
2
3
public class Program
4
{
5
public static void Main()
6
{
7
Console.WriteLine("Bài toán Tháp Hà Nội");
8
int n;
9
Console.WriteLine("Nhập vào số đĩa:");
10
n = int.Parse(Console.ReadLine());
11
towers(n,'A','B','C');
12
}
13
//Hàm cần chuyển n đĩa từ cọc nguồn đến cọc đích sử dụng cọc trung gian
14
public static void towers(int n, char from, char to, char aux)
15
{
16
//Nếu chỉ còn 1 đĩa thì chuyển trực tiếp giữa hai cọc
17
if(n==1)
18
Console.WriteLine("Di chuyển đĩa 1 từ {0} tới {1}", from, to);
19
else
20
{
21
//Gọi hàm đệ quy di chuyển n-1 đĩa tới cọc phụ
22
towers(n-1,from,aux,to);
23
Console.WriteLine("Di chuyển đĩa {0} từ {1} tới {2}",n,from,to);
24
//Gọi hàm đệ quy di chuyển n-1 đĩa từ cọc phụ về cọc ban đầu
25
towers(n-1,aux,to,from);
26
}
27
}
28
}
Cached Result