汉诺塔问题

package suanfa;

public class HanoiTower {

	public static void main(String[] args) {
		int n = 3;
		hanoTower(n,'A','B','C');
	}

	private static void hanoTower(int n, char from, char in, char to) {
		if(n==1) {
			System.out.println("把第"+n+"个盘子从"+from+"移到"+to);
		}else{
			//先把n-1个移到B
			hanoTower(n-1,from,to,in);
			//然后将第n个盘子移到C
			hanoTower(1,from,in,to);
			//再将B上的盘子移到C上
			hanoTower(n-1,in,from,to);
		}
		
	}

}

总结:其实就是两步走,第一步将n-1个盘子上面的盘子移到中介柱子上,然后将最后一个盘移到目标柱子上,最后一步就是将n-1盘子移到目标柱子上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值