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

大吉大利,今晚吃鸡

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
全部评论

相关推荐

这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 15:08
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务