博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hanoi
阅读量:4975 次
发布时间:2019-06-12

本文共 847 字,大约阅读时间需要 2 分钟。

汉诺塔问题

时间限制: 1 Sec  内存限制: 128 MB

题目描述

汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有n个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这n个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求打印移动的步骤。如果只有一个盘子,则不需要利用B座,直接将盘子从A移动到C。

输入

输入盘子个数n

输出

输出盘子最少移动的步骤

样例输入

3

样例输出

1:A->C2:A->B3:C->B4:A->C5:B->A6:B->C7:A->C
1 #include 
2 3 using namespace std; 4 int count = 1; 5 void Hanoi(int n, char a, char b, char c) 6 { 7 if(n == 1) 8 cout << count++ << ":" << a << "->" << c << endl; 9 else {10 Hanoi(n-1,a,c,b);11 cout << count++ << ":" << a << "->" << c << endl;12 Hanoi(n-1,b,a,c);13 }14 }15 16 int main()17 {18 int n;19 char a = 'A', b = 'B', c = 'C';20 while(cin >> n)21 {22 Hanoi(n,a,b,c);23 }24 return 0;25 }

 

转载于:https://www.cnblogs.com/jxust-jiege666/p/6575833.html

你可能感兴趣的文章
组件:slot插槽
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
利用sed把一行的文本文件改成每句一行
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
scanf和gets
查看>>
highcharts 图表实例
查看>>
ubuntu下如何查看用户登录及系统授权相关信息
查看>>
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>
【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
查看>>
highcharts曲线图
查看>>