看见更大的世界,遇见更好的自己。
See a better world to meet better for ourselves.
一群猴子要选新猴王。新猴王的选择方法是 让N只候选猴子围成一圈,
从某位置起顺序编号为1 N号。从第1号开始报数,每轮从1报到3,凡
报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。
如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?
方法 n只猴子 到列表中,给每只猴子从1开始编号,直到n。在循环中模拟从1开始累加着报数,如果报的数能被3整除,将这只猴子删除,否则移到队伍的最后面,就参与报数。
N = int(input("请输入猴子的数量 "))
monkeys = [] # 列表存储在圈内的猴子
for i in range(1, N + 1): # 给每个猴子编号,从1开始
monkeys.append(i)
print(monkeys)
i = 1 # 从1开始报数
while len(monkeys) > 1: # 如果只剩下一只猴子,结束循环
n = monkeys.pop(0) # 列表中取出第一只猴子,参与报数
if i % 3 > 0: # 报数不为3的倍数
monkeys.append(n) # 到列表的后面,继续参与报数
i += 1 # 每次报数累加1
print(monkeys[0])
Powered by HadSky 7.12.6
©2015 - 2023 小羊羔外链网
您的IP:3.238.253.163,2023-03-22 17:46:30,Processed in 0.01759 second(s).