声明:
0.约瑟夫问题背景不再赘述,难点为成环
1.本代码采用列表成环,使用链表更简便
2.本代码采用迭代法,使用递归更简便
3.转载附作者Id及作品链接
原代码如下:
def josephus_1(n,m):
#迭代实现
#返回下标
ls=[]
for _ in range(n):
ls.append(1)
count=1
index=0
while True:
if not count%m:
ls[index]=0
index+=1
if index!=n:
if ls[index]:
count+=1
pre_count=count
else:
if ls[0]:
count+=1
pre_count=count
if not index
index=0
pre_count+=1
if not pre_count-count
break
for i in range(n):
if ls[i]:
return i
result_1=josephus_1(41,3)
print(result_1)
代码至此结束
此栏目预测共享自学之乐,共勉求知之友,共塑网站和谐好学的形象。
欢迎大家在评论区发表合理的意见和指正。
如果觉得该栏目对您有帮助,望不吝点赞收藏。