zoukankan      html  css  js  c++  java
  • 汉诺贝塔游戏

    汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。

    大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘

    //层次分析:  A->B         A->C   B->C          A:1  2  -> C:  1  2;

     

    #include<iostream>
    using namespace std;

    int times = 0;

    void move(char src, char dst)
    {
    times++; //移动次数
    cout << times << ": " << src << "--->" << dst << endl;
    }

    void hanNuoTower(int n, char first, char mid, char last)      //n:盘子个数 first:第一个正存着盘子 mid:用来转移盘子 last:最终存放盘子
    {
    if (1 == n) //递归出口不可忘
    move(first, last);
    else
    {
    hanNuoTower(n - 1, first, last, mid);
    move(first, last);
    hanNuoTower(n - 1, mid, first, last);
    }
    }

    int main()
    {
    int n = 4;
    hanNuoTower(n, 'A', 'B', 'C');

    return 0;

    }
    //1 : A--->C
    //2 : A--->B
    //3 : C--->B
    //4 : A--->C
    //5 : B--->A
    //6 : B--->C
    //7 : A--->C


    //1: A--->B
    //2 : A--->C
    //3 : B--->C
    //4 : A--->B
    //5 : C--->A
    //6 : C--->B
    //7 : A--->B
    //8 : A--->C
    //9 : B--->C
    //10 : B--->A
    //11 : C--->A
    //12 : B--->C
    //13 : A--->B
    //14 : A--->C
    //15 : B--->C

  • 相关阅读:
    开源情报 Advise
    介绍几本搜索引擎的基础书
    Internet上的图像检索技术
    交易系统 转 武胜
    MySql数据库导出csv 武胜
    C# Process.Start()方法详解 武胜
    转 嵌入处部程序 武胜
    网际风通视接口 武胜
    C# Process运行cmd命令的异步回显 武胜
    RBreaker 武胜
  • 原文地址:https://www.cnblogs.com/xcb-1024day/p/11334980.html
Copyright © 2011-2022 走看看