数字游戏函数自定义版

def yuesefu(x,y):
    print(x)
    print(y)
    list1=[1 for i in range(1,x+1)]
    while len(list1) > y:
        list2=list1[0:3]
        list1.append(list2[0])
        list1.append(list2[1])
        list1.append(list2[2])
        del list1[0:4]
        return list1

def move(list1,step):
    #移动step前的元素到列表的末尾
    num = step-1
    while num > 0:
        tmp = list1.pop(0)
        list1.append(tmp)
        num = num - 1
        
    return list1 #根据step做了元素的移动

def play(players,step,alive):

    #生成一个列表,从【1、、、players】
    list1 =[i for i in range(1,players+1)]
    
    #进入游戏的循环,每次数到step淘汰,step之前的元素要移动到末尾
    #游戏结束的条件是,列表剩余人数小雨alive
    while len(list1)>alive:
        list1=move(list1,step)
        
        list1.pop(0)

    return list1

players_num = int(input("请输入参加游戏的人数"))
step_num = int(input("请输入淘汰的数字"))
alive_num = int(input("请输入幸存的人数"))
list1=[]
alive_list = play(players_num,step_num,alive_num)
print(alive_list)
#移动step前的元素列表末尾
#    num=step-1
#    while num > 0
#        txp = list1.pop(0)
#        list1.append(tmp)
#        num=num-1
#        list1 = move(list1,step)
    
#       list1.pop(0)#此时的step的元素

请输入参加游戏的人数50
请输入淘汰的数字4
请输入幸存的人数3
[30, 47, 1]
上一篇:LeetCode 【困难】数据库-第1194:锦标赛优胜者


下一篇:iOS学习17之OC内存管理