C++实现汉诺塔算法经典实例

2025-05-27 0 77

本文所述为汉诺塔算法C++代码的经典实现方法。

汉诺塔问题描述:3个柱为a、b、c,圆盘最初在a柱,借助b柱移到c柱。需要你指定圆盘数。

具体实现代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28
#include <iostream>

using namespace std;

int times = 0; //全局变量,搬动次数

//第n个圆盘从x柱搬到z柱

void move(int n, char x, char z)

{

cout << "第" << ++times << "步: 将" << n << "号盘从" << x << "移到" << z << endl;

}

//将x柱上按直径自上而下由小到大编号为1至n的n个圆盘按规则搬到z柱上。y用作辅助柱

void hanoi(int n, char x, char y, char z)

{

if (n == 1)

move(1, x, z); //将编号为1的圆盘从x移到z

else {

hanoi(n - 1, x, z, y); //将x上编号为1至n-1的圆盘移到y,z作辅助柱

move(n, x, z); //将编号为n的圆盘从x移到z

hanoi(n - 1, y, x, z); //将y上编号为1至n-1的圆盘移到z,x作辅助柱

}

}

int main()

{

int n;

cout << "3个柱为a、b、c,圆盘最初在a柱,借助b柱移到c柱。请输入圆盘数:";

cin >> n;

hanoi(n, 'a', 'b', 'c');

system("pause");

return 0;

}

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 C++实现汉诺塔算法经典实例 https://www.kuaiidc.com/75993.html

相关文章

发表评论
暂无评论