python报数退出圈子,问哪一号最后留下来

    xiaoxiao2021-03-25  102

    有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 程序如下 n = int(input('please input the number of pe0ple\n')) a = [] for j in range(n): a.append(j+1) print (a) res1 = 0 ''' 剩余的个数为上一波的长度 减去 这一波最后一个去掉的位置, ''' while len(a)>1: length = len(a) rmv = 0 #记录一次遍历中去掉的个数 for i in range(length): if (i+1+res1)%3 == 0: a.remove(a[ i - rmv ]) #原来 i 对应的位置 即 现在的 i-rmv rmv = rmv + 1 if i+4 > length: # 此时的 i 位置为当前遍历中最后一个去掉的 位置 #print (length,'===+++===', i) res1 = length - i - 1 #print ('res1===', res1) break print (a)
    转载请注明原文地址: https://ju.6miu.com/read-23034.html

    最新回复(0)