分类
编程

编程看最后剩下的人

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

if __name__ == '__main__':
    nmax = 50
    n = int(input('请输入总人数:'))
    num = []
    for i in range(n):
        num.append(i + 1)
    print(num[2])
 
    i = 0
    k = 0
    m = 0 #删掉的个数,最后要删掉只剩下一个人
 
    while m < n - 1:
        if num[i] != 0 :
            print(num[3])
            print(k)
            k += 1
        if k == 3:
            num[i] = 0 #出圈
            print("i=",i)
            print(num)
            k = 0
            m += 1
            print("m=",m)
        i += 1
        if i == n : i = 0
 
    i = 0
    while num[i] == 0: i += 1
    print (num[i])

程序分析:

【金山文档】 程序分析 报数 逢三出圈
https://kdocs.cn/l/cljwkej3CAXP