用python怎么做

列表的灵活应用:比如,100个人围一圈报数,逢5删除,最后剩下的人是原来的几号。。

一直循环报下去吗

def josephus(n, k):
    # n代表总人数,k代表报数的数字
    List = list(range(1, n + 1))
    index = 0
    while List:
        temp = List.pop(0)
        index += 1
        if index == k:
            index = 0
            continue
        List.append(temp)
        if len(List) == 1:
            print(List)
            break


if __name__ == '__main__':
    josephus(9, 5)

https://blog.csdn.net/qq_43497702/article/details/88047489


ls = [i for i in range(1,101)]
k=4
while len(ls)>1:
    ls.pop(k)
    k=(k+4)%len(ls)
print(ls[0])
ls = list(range(1,101))
k=4
while len(ls)>1:
    del ls[k]
    k+=4
    k%=len(ls)
print(ls[0])