题解 | #大吉大利,今晚吃鸡#

大吉大利,今晚吃鸡

http://www.nowcoder.com/practice/c9d9f9c60b4448eabc0569f80a3461bb

目标是更好的解释

import sys
cnt=0

def hanoi(n):
    global cnt
    # 最终状态判断,当无盘需要移动时停止
    # 注意实际上最后一步的移动是之前移动的子集
    # 不用自增cnt
    if(n==0):
        return
    # 1为最大盘,X是它上面的所有盘集合
    # --------------------
    # 1 0 X,一次移动n-1个盘
    hanoi(n-1)
    # --------------------
    # 将1 0 X > 0 1 X,即移动一次cnt+1
    cnt+=1
    # 注意步数自增了但是没调用函数
    # 因为三个柱没本质区别且最大盘X所在位置不影响移动
    # --------------------
    # 0 1 X > X 1 0
    hanoi(n-1)
    # --------------------
    # X 1 0 > X 0 1
    cnt+=1
    # --------------------
    # X 0 1 > 0 0 X/1
    hanoi(n-1)
    # --------------------

n = [i for i in sys.stdin.readlines()]
n = list(map(int, n))

for i in n:
    hanoi(i)
    print(cnt)
    cnt=0
全部评论

相关推荐

10-14 10:56
已编辑
长沙学院 嵌入式软件开发
痴心的00后拿到了ssp:hr面挂了,无所谓了反正不去😃
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-28 17:48
中山大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务