美文网首页
Go 数组解决汉诺塔问题

Go 数组解决汉诺塔问题

作者: Yohann丶blog | 来源:发表于2020-07-06 11:32 被阅读0次
WechatIMG42.jpeg

汉诺塔问题

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

代码

package main

import (
    "fmt"
)

func hanio(n int, x string, y string, z string) {
    if n < 1 {
        fmt.Printf("汉诺塔的层数不能小于1")
    } else if n == 1 {
        fmt.Printf("移动:%v -> %v\n", x, z)
        return
    } else {
        hanio(n - 1, x, z, y)
        fmt.Printf("移动:%v -> %v\n", x, z)
        hanio(n - 1, y, x, z)
    }
}

func main() {
    var x,y,z = "x","y","z"
    hanio(3, x, y, z)
}

执行

$ go run hanio.go
移动:x -> z
移动:x -> y
移动:z -> y
移动:x -> z
移动:y -> x
移动:y -> z
移动:x -> z

相关文章

  • Go 数组解决汉诺塔问题

    汉诺塔问题 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一...

  • 汉诺塔算法和背后的数据结构

    汉诺塔是有算法的。 很多问题都有解决办法,汉诺塔也不例外。如果汉诺塔的算法符合 Introduction to a...

  • 【HDU 1997】汉诺塔VII

    汉诺塔VII(题目链接) 思路 本文参考了下列文章汉诺塔的回顾和深刻 汉诺塔VII 首先用数组将每一个样例的状态存...

  • 汉诺塔问题与递归

    文章也同时在个人博客 http://kimihe.com/更新 汉诺塔问题(Hanoi Tower) 汉诺塔问题的...

  • javascript解决汉诺塔问题

    递归的课后作业:解决汉诺塔问题有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆...

  • Prolog解决汉诺塔问题

    起源 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子...

  • Swift解决汉诺塔问题

    汉诺塔来源及应用 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(...

  • Python使用递归解决汉诺塔问题

    汉诺塔 (http://baike.baidu.com/view/191666.htm) , 汉诺塔问题也是程序设...

  • 动态规划刷题整理(持续更新)

    (持续更新) 奇怪的汉诺塔(4柱汉诺塔) 描述汉诺塔问题,条件如下:1、这里有A、B、C和D四座塔。2、这里有n个...

  • Python汉诺塔递归算法

    汉诺塔含义: 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石...

网友评论

      本文标题:Go 数组解决汉诺塔问题

      本文链接:https://www.haomeiwen.com/subject/xydwqktx.html