【算法竞赛入门经典】6.1.1 卡片游戏

卡片游戏:

  • 桌上有一叠拍,从第一张牌(位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩两张牌时进行以下操作:把第一张牌扔掉,然后把新的第一张放到整叠牌

  • 的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌

# input 获得的是字符串,需要转换为int类型
n = int(input("please input a number:"))

#  range 参数不包括最后一个,所以需要+1
queue = [i for i in range(1, n+1)]

while True:
    head = queue.pop(0)
    print(head)
    second = queue.pop(0)
    queue.append(second)
    

    if len(queue) == 1:
        break

这题考量的是队列的先进先出,MARK

 

你可能感兴趣的:(算法)