7-17 汉诺塔的非递归实现 (25 分)(思路分析)
一:题目
借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。
输入格式:
输入为一个正整数N,即起始柱上的盘数。
输出格式:
每个操作(移动)占一行,按柱1 -> 柱2的格式输出。
输入样例:
3
输出样例:
a -> c
a -> b
c -> b
a -> c
b -> a
b -> c
a -> c
二:思路
我一上来就用递归做了 ,汉诺塔 很典型的用递归做法 所以我便没想其他的直接用递归做了,但该发生的还是会发生,最后一个点在超时了,然后在csdn上,看见大佬说将cout 改为 printf 就不超了 哈哈哈!!
三:上码
#include<bits/stdc++.h>
using namespace std;void move(char c1,char c2){//cout << c1 << " -> " << c2 << endl;printf("%c -> %c\n",c1,c2);
} //c1 经 c2 移动到 c3
void Hanoi(int n,char x,char y,char z){if(n == 1){move(x,z);}else{Hanoi(n-1,x,z,y);move(x,z);Hanoi(n-1,y,x,z);}}int main()
{int N;cin >> N;Hanoi(N,'a','b','c');}
7-17 汉诺塔的非递归实现 (25 分)(思路分析)相关推荐
- 7-5 汉诺塔的非递归实现 (25 分)
7-5 汉诺塔的非递归实现 (25 分) 借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为"a")通过借助柱(标记为"b ...
- 7-107 汉诺塔的非递归实现 (25 分)
7-107 汉诺塔的非递归实现 (25 分) 借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为"a")通过借助柱(标记为" ...
- 习题3.10 汉诺塔的非递归实现 (25分)
借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为"a")通过借助柱(标记为"b")移动到目标柱(标记为&quo ...
- PTA 汉诺塔的非递归实现
PTA 汉诺塔的非递归实现 7-11 汉诺塔的非递归实现 (25分) 借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为"a")通过 ...
- 汉诺塔的非递归实现(借助堆栈模拟递归)
汉诺塔的非递归实现 借助堆栈以非递归(循环)方式求解汉诺塔的问题(n,a,b,c).即将n个盘子从起始柱(标记为"a")通过借助柱(标记为"b")移动到目标杜( ...
- 汉诺塔python非递归实现,[Python3 练习] 006 汉诺塔2 非递归解法
题目:汉诺塔 II 接上一篇 [Python3 练习] 005 汉诺塔1 递归解法 这次不使用递归 不限定层数 (1) 解决方式 利用"二进制" (2) 具体说明 统一起见 我把左 ...
- 汉诺塔问题的递归和非递归算法
汉诺塔问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上 ...
- python堆栈汉诺塔非递归_汉诺塔问题的递归解法和非递归解法(python语言实现)...
汉诺塔问题的非递归解法(python语言类解法) #!/usr/bin/env python #coding:utf-8 import sys import time reload(sys) sys. ...
- 汉诺塔问题的递归求解
汉诺塔问题的递归求解 汉诺塔 解题思路 具体实现 汉诺塔 汉诺塔 汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱 ...
最新文章
- MyBatis入门示例
- 小黑小波比.保存密码加密方式
- Python集合和函数
- docker的安装与安装mysql(mac,centos为例)
- Python下使用optparse模块实现对多个文件进行统计【二】
- PHP:10个不常见却非常有用的PHP函数
- Oracle(一):简介、安装、DDL、DML、JDBC、导入导出
- Android仿探探卡片拖拽,[转]仿探探拖拽卡片效果Vue3实现
- Vue按需加载提升用户体验
- 如何使用iMazing备份、恢复《暴力飞车》游戏存档
- iOS 视频播放器旋转问题小结
- 勒索病毒的克星来了 360安全团队独家发布文件恢复工具
- 软件测试工程师需要掌握哪些技能呢?
- wamp php打不开,wamp无法打开phpmyadmin
- JS实现PDF文件下载
- 解决索尼WH-1000XM3使用蓝牙连接电脑无法使用麦克风的问题
- 黑苹果双系统时间不一致_解决 Windows/macOS 双系统时间不同步问题
- 07蚂蚁-高并发解决方案——1.Hystrix服务降级,服务隔离,服务熔断,服务限流,CDN
- barrier()函数
- ibm服务器x3650m4引导,IBM X3650 M4安装win 2008 Server操作指南
热门文章
- XunSearch的使用
- 【QGIS入门实战精品教程】5.1:QGIS地理坐标转火星坐标系(GCJ02)案例教程
- ENVI支持下利用高分辨率影像城市绿地信息提取方案
- Android之靠谱的获取本地相册图片
- C和指针之字符串编程练习11(统计一串字符包含the的个数)
- Android stduio之Plugin with id ‘com.android.application‘ not found解决办法
- Android之getCacheDir()和getFilesDir()方法区别
- Android插件化开发基础之Java反射机制研究
- apache php url重写语法,apache url重写实现伪静态
- java 矩阵题目_java练习本(原每日一练)(20190517)