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

  • 相关阅读:
    配置文件和脚本文件区别
    .sh
    瘋耔思维空间
    vi编辑器的三种模式
    在ubuntu系统荣品开发配套JDK安装
    如何查看自己运行ubuntu是32位还是64位
    志气
    高仿微信朋友圈
    Java OCR tesseract 图像智能字符识别技术 Java代码实现
    构建基于Javascript的移动CMS——加入滑动
  • 原文地址:https://www.cnblogs.com/xcb-1024day/p/11334980.html
Copyright © 2011-2022 走看看