python解决约瑟夫问题_python解决经典约瑟夫问题

声明:

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)

代码至此结束

此栏目预测共享自学之乐,共勉求知之友,共塑网站和谐好学的形象。

欢迎大家在评论区发表合理的意见和指正。

如果觉得该栏目对您有帮助,望不吝点赞收藏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值