汉诺塔的简单实现

原创 2015年07月07日 16:49:39
一直认为很简单的递归经典算法,感觉有时转不过来,特意写了一个
#include<iostream>
using namespace std;
void move(int n,char from,char to)
{
	cout<<n<<" from "<<from<<" to "<<to<<endl;
}
void Hanno(int n,char f,char temp,char t)//从什么到什么,剩下的就是中间临时转移的
{
	if (n==1)
	{
		move(1,f,t);
	} 
	else
	{   
		Hanno(n-1,f,t,temp);//将n-1个盘通过t从f移到temp相当于从A到B那么临时就是C
		move(n,f,t);
		Hanno(n-1,temp,f,t);//将n-1个盘通过f从temp移到t相当于从B到C那么临时就是A
	}
}
int main()
{
	Hanno(3,'a','b','c');
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

汉诺塔的简单实现

  • 2014-05-27 14:23
  • 19KB
  • 下载

python实现简单的汉诺塔问题

汉诺塔问题可以简单描述成为将a柱子上的圆盘按一定规则借助b柱子完美地复制到c柱子上。现假设有a,b,c三根柱子,a柱子上的圆盘从上到下依次为标号为1,2,3,……,n,且为递增状态。规则:每次移动一个...

汉诺塔问题的简单程序

  • 2012-02-10 22:35
  • 548KB
  • 下载

Hanoi Tower 汉诺塔的简单分析/C

当然、这是一个经典的递归问题~     想必来看这篇博文的同学对汉诺塔应该不会陌生了吧,   写这篇博还是有初衷的:   之前学数据结构的时候自己看书、也上网上查了很多资料,资料都比较散、而且描...

汉诺塔简单图形设计思想1(C)

我们都知道汉诺塔游戏,在C语言程序设计中,我们也可以简单的设计出它的图形,但是如何动态设计初始化汉诺塔的层数呢?这看起来有点棘手,但是只要观察其中的规律就可以用for循环语句的嵌套和if...else...

汉诺塔简单图形设计思想4(C)

前面已经做了设计汉诺塔的一些工作,接下来我们该如何相对完整的实现汉诺塔的问题了,从开始的设计汉诺塔图形(呵呵没有颜色不算图形吧),之后了解汉诺塔的递归过程,现在就是如何把设计图形和递归的过程结合在一起...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)