有n只猴子围成一个圈坐着,从第一个猴子开始报数依次从1报到m,报到m的猴子将被踢出圈,并从下一个猴子开始重新从报数(从1到m),最后一只是猴子王
思想:用列表做,生成一个猴子列表,然后将报数到m的猴子踢出圈
写这个猴子称王练习是对我2018年的总结,因为是我一个朋友教会我学会思考,是他陪我度过最难熬的时光,有他的帮助我才在python入门,没有放弃,他写的第一个博客就是这个,而我2018最后发出的这个博客是这个,只是因为感谢!
def king(n,m):
a=[i for i in range(1,n+1)]
# 建一个n只猴子的列表
while len(a)>1:
t = m % len(a)
# 求要踢出猴子的位置
print('踢出%d'%a[t-1])
a.remove(a[t-1])
# 下标比位置小1,所以要减1
if t != 0 :
a = a[t-1:] + a[:t-1]
# 不到最后一只,一直重置列表
else:
continue
return a[0]
# 返回猴子王
print(king(10,3))