时间:2021-05-20
本文所述为汉诺塔算法的C++代码的经典实现方法。
汉诺塔问题描述:3个柱为a、b、c,圆盘最初在a柱,借助b柱移到c柱。需要你指定圆盘数。
具体实现代码如下:
#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;}声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了python实现汉诺塔游戏的具体代码,供大家参考,具体内容如下一.汉诺塔汉诺塔问题是一个经典的递归问题,对于这个问题,我们可以把它简单的去看
汉诺塔问题是学习递归的入门问题,这里用C#简单实现了一个汉诺塔之间传递盘子的小程序通过简单绘图实现盘子在几个塔之间的转换:namespace汉诺塔{//盘子类c
C++实现汉诺塔的实例详解前言:有A,B,C三塔,N个盘(从小到大编号为1-N)起初都在A塔,现要将N个盘全部移动到C塔(按照河内塔规则),求最少移动次数以及每
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。下面是c#实现汉诺塔示例复制代码代码如下:usingSystem;usingSystem.Co
本文实例讲述了PHP实现的解汉诺塔问题算法。分享给大家供大家参考,具体如下:问题描述:相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块