Python经典编程习题100例:第69例:约瑟夫问题

432 阅读1分钟

不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~

本人初学Python,只为熟悉语法编写,大神请勿理会

在这里插入图片描述
点击下面链接
Python经典编程100例习题汇总

题目描述:

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

解题思路:

> 

代码:

n=int(input())
num=[]
for i in range(n):
    num.append(i+1)
i=0
k=0
m=0
while m<n-1:
    if num[i]!=0:
        k+=1
    if k==3:
        num[i]=0
        k=0
        m+=1
    i+=1
    if i==n:
        i=0
i=0
while num[i]==0:
    i+=1
print(num[i])