经典汉诺塔递归实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典汉诺塔递归实现相关的知识,希望对你有一定的参考价值。

/*
 * 为了将num个盘子从char移动到to,需要先将第num个盘子上面的num-1个盘子移动到temp上,
 * 然后将第num个盘子移动到to上,最后将第N-1个盘子从temp移动到to上。这样通过递归
 * 就可以实现汉诺塔问题的求解。
 */

public static void HanuoTower(int num, char from, char temp, char to){
	if(num==1){
		System.out.println("从"+from+"移动盘子"+num+"号到"+to);
	}
	else{
		HanuoTower(num-1,from,to,temp);
		System.out.println("从"+from+"移动盘子"+num+"号到"+to);
		HanuoTower(num-1,temp,from,to);
	}
}


本文出自 “递归的梦想偏执狂” 博客,请务必保留此出处http://rubinzhan.blog.51cto.com/11883911/1860374

以上是关于经典汉诺塔递归实现的主要内容,如果未能解决你的问题,请参考以下文章

面试题 08.06. 汉诺塔问题(非递归实现汉诺塔问题)

函数递归——汉诺塔经典题型

go 实现几个递归经典案例(阶乘斐波那契数列二分查找汉诺塔)

从汉诺塔问题来看“递归”本质

汉诺塔递归思维

JS经典面试题汉诺塔