hanovertowers.java

来自「算法导论上机作业java实现」· Java 代码 · 共 38 行

JAVA
38
字号
import java.io.IOException;

//汉诺塔,采用递归的方式实现
public class HanoverTowers {
	public static void print_disks(int n){
		System.out.print("disks:"+n+" :");
	}
	public static void print_moves(char src,char dst){
		System.out.println(src+"============>"+dst);
	}
	public static void Towers(int n,char src,char mid,char dst){
		if(n==1){
			print_disks(n);
			print_moves(src,dst);
			return;
		}
		else{
			Towers(n-1,src,dst,mid);
			print_disks(n);
			print_moves(src,dst);
			Towers(n-1,mid,src,dst);
		}
	}
	public static void main(String[] args) throws IOException {
		byte[] disks=new byte[10];
		int n=0;
		System.out.println("input the numbers of the disks:");
		System.in.read(disks);
		//for(int i=0;i<disks.length;i++)
		n=disks[0]%48;
		//System.out.println(n);
		Towers(n,'A','B','C');
        System.exit(0);	

	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?