当前位置: 移动技术网 > 科技>人工智能>VR/AR > 约瑟夫环(高级版)

约瑟夫环(高级版)

2020年11月26日  | 移动技术网科技  | 我要评论
约瑟夫环(高级版)def move(players,step): # 移动step前的元素到列表末尾 num = step - 1 while num > 0: tmp = players.pop(0) players.append(tmp) num = num - 1 return players #根据step做了元素的移动def play(players,step,alive): #生成一个列表,从[1,

约瑟夫环(高级版)

def move(players,step):
    # 移动step前的元素到列表末尾
    num = step - 1
    while num > 0:
        tmp = players.pop(0)
        players.append(tmp)
        num = num - 1
    return players #根据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) #此时的step的元素在列表第一个位置,使用pop(0)从列表中删除
    return list1
players_num = int(input("请输入参加游戏的人数:"))
step_num = int(input("请输入淘汰的数字:"))
alive_num = int(input("请输入幸存人数:"))
alive_list =play(players_num,step_num,alive_num)
print(alive_list)     

本文地址:https://blog.csdn.net/AX400/article/details/110181848

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网