public class HanNuoTa { public static void main(String[] args) { HanNuoTa(3,'A','B','C'); } public static void HanNuoTa(int N,char pos1,char pos2,char pos3){//从pos1移动到pos3,pos2为中转 if(N==1) { move(N,pos1,pos3); return; } HanNuoTa(N-1,pos1,pos3,pos2);//从pos1移动到pos2,pos3为中转 move(N,pos1,pos3); HanNuoTa(N-1,pos2,pos1,pos3);//从pos2移动到pos3,pos1为中转 } public static void move(int N, char sourceTower, char distTower) { System.out.println("编号为"+N+"的盘子从"+sourceTower+"->"+distTower); }}
def move(n, a, b, c): if(n == 1): print(a,"->",c) return move(n-1, a, c, b) move(1, a, b, c) move(n-1, b, a, c)move(3, "a", "b", "c")
