15根胡萝卜和15根骨头排成一圈,编号1-30。现在开始玩游戏,从1开始报数,逢九取出,共取出15根送给狐狸。黄同学喜欢吃骨头,请问骨头如何摆放,让最后剩下的全是骨头。
用python怎么写
求求大神教教萌新
这就是约瑟夫环问题
你题目的解答代码如下:
li = [x for x in range(1,31)]
li2 = []
index = -1
for i in range(15):
index = (index + 9) % len(li)
li2.append(li.pop(index))
index = index - 1
print('胡萝卜位置',li2)
print('骨头位置',li)
如有帮助,望采纳!谢谢!
实在想不出怎么命名了,就这样吧,
所有位置=[i for i in range(1,31)]
胡萝卜位置=[]
index=0
number=0
while True:
if len(胡萝卜位置)==15:
break
index+=1
number+=1
if index>len(所有位置):
index=1
if number==9:
胡萝卜位置.append(所有位置.pop(index-1))
number=0
index-=1
print('胡萝卜位置',胡萝卜位置)
print('骨头位置',所有位置)