THÁP HÀ NỘI


BÀI TOÁN
Chuyển n đĩa từ cột A sang cột B lấy cột C làm trung gian theo thứ tự đĩa lớn nằm phía dưới còn đĩa nhỏ nằm phía trên.

CODE MẪU BẰNG Mathematica 5.1

Code:

Move[n_, a_, b_] := If[n == 1
      ,
      Print[a, "-->", b]
      ,
      Move[n - 1, a, 6 - a - b];
      Move[1, a, b];
      Move[n - 1, 6 - a - b, b];
];
n = Input[];
Print["Chuyen ", n, " dia tu cot 1 sang cot 2 lay cot 3 la trung gian"];
Move[n, 1, 2];

VÍ DỤ
n = 3
Chuyen \[InvisibleSpace]3\[InvisibleSpace] dia tu cot 1 sang cot 2 lay cot 3 \
la trung gian
1-->2
1-->3
2-->3
1-->2
3-->1
3-->2
1-->2