python GO 汉诺塔

2 篇文章 0 订阅


python

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

count = 0

def TheTowerofHanol(n, s, e, m):
    global count
    if n == 0:
        return
    elif n == 1:
        count += 1
        print(count, 'step:', s, 'move to', e)
    else:
        TheTowerofHanol(n-1, s, m, e)
        TheTowerofHanol(1, s, e, m)
        TheTowerofHanol(n-1, m, e, s)

if __name__ == '__main__':
    n = int(input('enter the number:'))
    TheTowerofHanol(n, 'A', 'C', 'B')

go

package main

import "fmt"

var count int

func TheTowerofHanol(n int, s, m, e byte) {
	if n == 0 {
		return
	} else if n == 1 {
		count += 1
		fmt.Println(count, "step: ", string(s), "move to ", string(e))
	} else {
		TheTowerofHanol(n-1, s, m, e)
		TheTowerofHanol(1, s, e, m)
		TheTowerofHanol(n-1, m, e, s)
	}
}

func main() {
	count = 0
	TheTowerofHanol(3, 'A', 'C', 'B')
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值