Python約瑟夫生者死者小游戲?qū)嵗v解
問題描述:
30 個人在一條船上,超載,需要 15 人下船。于是人們排成一隊,排隊的位置即為他們的編號。
報數(shù),從 1 開始,數(shù)到 9 的人下船。如此循環(huán),直到船上僅剩 15 人為止,問都有哪些編號的人下船了呢?
解決思路:
給30個人編號1-30,每個人的初值都是1(在船上),i代表他們的編號,j代表被扔下船的人數(shù)(j=15時循環(huán)結(jié)束),用check記數(shù),check=9時將對應編號i的人置0(扔下船)并讓check重新記數(shù)。
當i等于31時,手動將i置為1
當對應編號i的人值為0時,代表此人已經(jīng)不在船上,i+1找到下一個人記數(shù),以此類推。
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
執(zhí)行以上實例,輸出結(jié)果為:
9號下船了18號下船了27號下船了6號下船了16號下船了26號下船了7號下船了19號下船了30號下船了12號下船了24號下船了8號下船了22號下船了5號下船了23號下船了
到此這篇關(guān)于Python約瑟夫生者死者小游戲?qū)嵗v解的文章就介紹到這了,更多相關(guān)Python 約瑟夫生者死者小游戲內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Android打包篇:Android Studio將代碼打包成jar包教程2. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis3. SpringBoot+TestNG單元測試的實現(xiàn)4. Springboot 全局日期格式化處理的實現(xiàn)5. vue實現(xiàn)web在線聊天功能6. 解決Android Studio 格式化 Format代碼快捷鍵問題7. 完美解決vue 中多個echarts圖表自適應的問題8. JavaScript實現(xiàn)頁面動態(tài)驗證碼的實現(xiàn)示例9. Python使用urlretrieve實現(xiàn)直接遠程下載圖片的示例代碼10. Java使用Tesseract-Ocr識別數(shù)字
