码迷,mamicode.com
首页 > 编程语言 > 详细

python3约瑟夫环问题

时间:2018-10-21 22:56:09      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:for   print   style   理解   数组   比较   描述   约瑟夫环问题   pytho   

问题描述:n个人围成一个圈,从第一个人开始数1,数到第k个出局,然后下一个人继续从1数,求出局人编号

思路:将所有人编号放到数组里,一个人出局后,下一个人加上k对数组长度求余,得出下一个要删除的编号。

def Joseph(n,k):
    a = [x for x in range(1, n+1)]
    num = k
    for i in range(n):
        print(a[num%len(a)-1])
        del a[num%len(a)-1]
        if len(a)==0:
            print(ok)
        else:
            num = (num + k-1) % len(a)

k的值可以大于n,测试了下应该没问题。

看了好多网上的例子,这道题的解法也很多,感觉这个还是比较能理解的。

python3约瑟夫环问题

标签:for   print   style   理解   数组   比较   描述   约瑟夫环问题   pytho   

原文地址:https://www.cnblogs.com/szj22233060/p/9827420.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!