汉诺塔解法(C/C++)

原创 2004年07月17日 15:34:00

#include<iostream>
#include<string>

using namespace std;

void Hanoi(int n, string start, string middle, string end);

void move(int n, string start, string end)
{
    cout << "move:" << start << "->" << end << endl;
}

void exchange(int n, string start, string middle, string end)
{
    Hanoi(n - 1, start, end, middle);
    move(n, start, end);
    Hanoi(n - 1, middle, start, end);
}

void Hanoi(int n, string start, string middle, string end)
{
    return (n == 1) ? move(n, start, end) : exchange(n, start, middle, end);
}


int main(int argc, char** argv)
{
    int n;
    string start = "@", middle = "#", end = "$";

    n = argc > 1 ? atoi(argv[1]) : 3;
    cout << "The solution for n =" << n << endl;
    Hanoi(n, start, middle, end);

    return 0;
}

汉诺塔(一 )解法集合 (主要用快速幂)

汉诺塔(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的...
  • qq_31975227
  • qq_31975227
  • 2016年07月22日 11:25
  • 779

C语言/C++ 实现汉诺塔代码

假设现在有a 、b 、c 三个柱子,现在要把n个盘子从a移动到c,用递归来做,具体步骤如下。把a上面n-1个盘子看做一个整体,这样a上面就剩下两个盘子了,(n,n-1)1、把n-1个整体借助于c先移动...
  • u010889616
  • u010889616
  • 2015年08月15日 23:15
  • 4118

C/C++ 使用递归算法实现汉诺塔

汉诺塔原理解析: 当只有一个盘子的时候,只需要从将A塔上的一个盘子移到C塔上。             当A塔上有两个盘子是,先将A塔上的1号盘子(编号从上到下)移动到B塔上,再将A塔...
  • u013192061
  • u013192061
  • 2015年03月02日 15:04
  • 4162

汉诺塔(一)(快速幂)

汉诺塔(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插...
  • Kuguotao
  • Kuguotao
  • 2017年11月29日 17:37
  • 66

有关汉诺塔的算法问题——C++递归

汉诺塔递归问题
  • potato_uncle
  • potato_uncle
  • 2017年03月05日 18:32
  • 558

汉诺塔非递归算法分析与实现

汉诺塔的递归算法很容易理解,也非常容易实现。下面,本文讨论了汉诺塔问题的非递归算法,核心内容就是栈的使用技巧。 首先,对于每个柱子来说,就是一个栈,这个栈有个特点就是,大数放在下面,小数放在上面。在...
  • feihongchen
  • feihongchen
  • 2015年07月21日 22:37
  • 5850

Python中汉诺塔经典算法

Python中汉诺塔经典算法
  • u014745194
  • u014745194
  • 2017年04月13日 10:25
  • 308

迭代式汉诺塔(利用栈实现非递归)

汉诺塔问题的描述:   汉诺塔(Tower of Hanoi)问题又称“世界末日问题”有这样一个故事。古代有一个焚塔,塔内有3个基座A,B,C,开始时A基座上有64个盘子,盘子大小不等,大的在下,小的...
  • vmezr
  • vmezr
  • 2014年02月13日 01:30
  • 2893

nyoj 汉诺塔(一)+快速幂

汉诺塔(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝...
  • ldw201510803006
  • ldw201510803006
  • 2017年03月15日 23:45
  • 106

分治算法--汉诺塔问题

一、问题描述 1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上二、问题分析 将A盘中的若干个盘子分为两部分,下面一个,...
  • ydx115600497
  • ydx115600497
  • 2016年11月15日 16:47
  • 491
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汉诺塔解法(C/C++)
举报原因:
原因补充:

(最多只允许输入30个字)