大家好,欢迎来到IT知识分享网。
问题:有n个人围成一圈,顺序报数。从第一个人开始(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
程序分析:使用模拟方法进行解答
#!/usr/bin/python #coding:utf-8 #author:菜就多练呀4 n = int(input('请输入排队报号总人数:')) arr = [] for i in range(n): arr.append(i + 1) #生成排队报号人员列表 #----------------------------------------------------------------------------------------------- i = 0 #计数器 x = 0 #循环计数,等于3时,值设置为0,重新计数。 y = 0 #y统计0的个数,当小于n-1时退出循环。 #----------------------------------------------------------------------------------------------- while y < n - 1: if arr[i] != 0: x += 1 if x == 3: arr[i] = 0 #列表元素尽量不要删除,以防处理不当索引越界。 x = 0 y += 1 i += 1 if i == n: i = 0 #当所有数字循环一次时,设置为0重新开始。 #----------------------------------------------------------------------------------------------- i = 0 while arr[i] == 0: i += 1 print('最后留下的是'+str(arr[i])+'号')
程序输入:
请输入排队报号总人数:10
程序输出:
最后留下的是4号
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88588.html