Python约瑟夫生者死者小游戏实例讲解

问题描述:

30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。

报数,从 1 开始,数到 9 的人下船。如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?

解决思路:

给30个人编号1-30,每个人的初值都是1(在船上),i代表他们的编号,j代表被扔下船的人数(j=15时循环结束),用check记数,check=9时将对应编号i的人置0(扔下船)并让check重新记数。

当i等于31时,手动将i置为1

当对应编号i的人值为0时,代表此人已经不在船上,i+1找到下一个人记数,以此类推。

people={}

for x in range(1,31):

people[x]=1

# print(people)

check=0

i=1

j=0

while i<=31:

if i == 31:

i=1

elif j == 15:

break

else:

if people[i] == 0:

i+=1

continue

else:

check+=1

if check == 9:

people[i]=0

check = 0

print("{}号下船了".format(i))

j+=1

else:

i+=1

continue

执行以上实例,输出结果为:

9号下船了

18号下船了

27号下船了

6号下船了

16号下船了

26号下船了

7号下船了

19号下船了

30号下船了

12号下船了

24号下船了

8号下船了

22号下船了

5号下船了

23号下船了

到此这篇关于Python约瑟夫生者死者小游戏实例讲解的文章就介绍到这了,更多相关Python 约瑟夫生者死者小游戏内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

以上是 Python约瑟夫生者死者小游戏实例讲解 的全部内容, 来源链接: utcz.com/z/317613.html

回到顶部