java实现汉诺塔

详细步骤都在注释里

public class HanoiTower {

	public static void hanoiTower(int n,String from,String to,String help)
	{
		//from:起点塔 help:辅助塔 to:目标塔
		/*
		 * 解题思路:
		 * 假设有A,B,C三个塔
		 * 将n个圈从A塔挪到B塔,
		 * 相当于将n-1个圈从A塔借助B塔挪到C塔
		 * 再把第n个圈从A挪到B塔
		 * 最后把n-1个圈从C塔借助A塔挪到B塔 
		 * */
		if(n==1) {
			System.out.println("move"+n+"from"+from+"to"+to);
			return ;
		}
		hanoiTower(n-1,from,help,to);
		System.out.println("move"+n+"from"+from+"to"+to);
		hanoiTower(n-1,help,to,from);	
	}
	
	public static void main(String[] args) {
		hanoiTower(3,"A","B","C");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值