博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5-17 汉诺塔的非递归实现 (25分)
阅读量:6229 次
发布时间:2019-06-21

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

5-17 汉诺塔的非递归实现   (25分)

借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。

输入格式:

输入为一个正整数N,即起始柱上的盘数。

输出格式:

每个操作(移动)占一行,按柱1 -> 柱2的格式输出。

输入样例:

3

输出样例:

a -> ca -> bc -> ba -> cb -> ab -> ca -> c ------------------------------- 汉若塔问题的递归求解代码如下
1 #include 
2 3 void move(char x, int n, char y) 4 { 5 printf("put %d from %c to %c\n", n, x, y); 6 } 7 8 void hanoi(int n, char x, char y, char z) 9 {10 if(n == 1)11 move(x, 1, z);12 else13 {14 hanoi(n-1, x, z, y);15 move(x, n, z);16 hanoi(n-1, y, x, z);17 }18 }19 20 int main()21 {22 int n;23 scanf("%d", &n);24 hanoi(n, 'a', 'b', 'c');25 }

 

非递归求解,目前还不会……

 

转载于:https://www.cnblogs.com/hello-lijj/p/7229555.html

你可能感兴趣的文章
Android 应用兼容性最佳实践 | 中文教学视频
查看>>
Servlet第三篇【request和response简介、response的常见应用】
查看>>
Mybatis第五篇【Mybatis与Spring整合】
查看>>
优雅的类写法
查看>>
ReactNative开发必备ES6知识
查看>>
基于BIGINT溢出错误的SQL注入
查看>>
Burp Suite使用介绍(二)
查看>>
魔幻特效,慢放世界,nova 3带你玩转抖音新技能
查看>>
声明式调用---Feign
查看>>
有效的沟通,如忍者的最后一击!
查看>>
从零开始搭建一个简单的基于webpack的vue开发环境
查看>>
【功能盘点】升级后的媒体处理MPS有哪些能力?
查看>>
【iOS 印象】Swift 中值类型与引用类型指北
查看>>
python-path配置问题解决
查看>>
创建使用 framework和 a静态库
查看>>
最好的Linux发行版
查看>>
利用AudioContext来实现网易云音乐的鲸鱼音效
查看>>
JS原型与原型链总结篇
查看>>
react学习笔记二----nodejs服务器搭建及异常处理
查看>>
开了香槟的Kubernetes并不打算放慢成功的脚步
查看>>