网络编程
位置:首页>> 网络编程>> Python编程>> Python约瑟夫生者死者小游戏实例讲解

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

作者:runoob  发布时间:2023-02-12 02:14:25 

标签: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号下船了

来源:https://www.runoob.com/python3/python-joseph-life-dead-game.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com