举个例子,我想创建一个FLAMES游戏。以下是清单。
[' F'' L'' A'' M'' E',& #39; S']
当我试图删除第11项时,要删除的第一个字母是" E"。然后计数必须从字母" S"开始。我不知道如何构建逻辑。
计数必须一遍又一遍地重复,直到我们得到一个项目。在我们弹出第11项" E"之后,计数必须从" S"而第11项将是" S"这次。现在" S"必须删除,计数必须从" F"然后第11个字母将是" A"。之后删除" F"和" L"。最后,这封信" M"应该留下来。这就是我想要的逻辑
这是我最初尝试过的。
x = 11
sample = ['f','l','a','m','e','s']
print len(sample)
empty = []
while True:
print sample
if len(sample) == 1:
print sample
print "Congratulations!!! Your result is %s"%(sample[0].upper())
break
elif len(sample)>= x:
sample.pop(x-1)
elif len(sample)< x:
y = x % len(sample)
sample.pop(y-1)
答案 0 :(得分:1)
功能:
sample = ['f','l','a','m','e','s']
def last_item(sample, x):
rest = 0
a = 0
while (len(sample) >1):
rest = (x+rest-a) % len(sample)
if rest == 0:
rest = len(sample)
print('element eliminated', sample[rest - 1])
sample.pop(rest - 1)
a = 1
return sample
print(last_item(sample, 5))
输出x = 5:
element eliminated e
element eliminated m
element eliminated s
element eliminated l
element eliminated a
['f']