您的位置:首页技术文章
文章详情页

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

【字号: 日期:2022-06-30 14:00:35浏览:31作者:猪猪

问题描述:

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=0i=1j=0while 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]=0check = 0print('{}号下船了'.format(i))j+=1 else:i+=1continue

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

9号下船了18号下船了27号下船了6号下船了16号下船了26号下船了7号下船了19号下船了30号下船了12号下船了24号下船了8号下船了22号下船了5号下船了23号下船了

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

标签: Python 编程
相关文章: