题目
打印 n 层汉诺塔从最左边移动到最右边的全部过程
题解
假定三根柱子分别为 from , to 和 help , 该问题可划分为 3 个步骤
-  将 
1~(n-1) 从 from 移动到 help 上 
-  将 
n 从 from 移动到 to 上 
-  将 
1~(n-1) 从 help 移动到 to 上 
其中, 将 1~(n-1) 从 help 移动到 to 的过程又可分为多个子问题, 需不断调整三个柱子的角色.
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
   | public class Hannoi {     public static void hannoi(int n, String from, String to, String help) {         if (n == 1) {             System.out.println("move " + 1 + " from " + from + " to " + to);         } else {             hannoi(n - 1, from, help, to);             System.out.println("move " + n + " from " + from + " to " + to);             hannoi(n - 1, help, to, from);         }     }
      public static void main(String[] args) {         int n = 3;         hannoi(3, "left", "right", "mid");     } }
  | 
 
Python
1 2 3 4 5 6 7
   | def hannoi(n, source, target, assist):     if n == 1:         print('move 1 from ' + source + ' to ' + target)     else:         hannoi(n - 1, source, assist, target)         print('move ' + str(n) + ' from ' + source + ' to ' + target)         hannoi(n - 1, assist, target, source)
   |