zoukankan      html  css  js  c++  java
  • Python使用队列实现Josephus问题

        Josephus问题,在这个古老的问题中,N个深陷绝境的人一致同意通过以下方式减少生存的人数。他们围坐一圈(位置记为0~N-1)并从第一个人报数,报到M的人会被杀死,

    知道最后一个人留下来。传说中Josephus找到了不会被杀死的位置。

       接收N和M的值,打印出被杀死的顺序:

    if __name__ == "__main__":
        num_people = int(input("深陷绝境的人数:"))
        num_kill = int(input("死亡数字:"))
        i = 1
        people_list = []
        for j in range(num_people):
            people_list.append(j)
        
        while 1:
            if len(people_list) == 1:
                print("  " , people_list.pop(), "live")
                break
    
            first_person = people_list.pop(0)
    
            if i != num_kill:
                people_list.append(first_person)
            else:
                i = 0
                print(first_person, end=" ")
    
            i += 1
  • 相关阅读:
    tomcat安装配置
    Java的jdk环境变量配置
    我为什么在这里写博客
    函数
    java的内部类解析
    常用集合
    java数据类型总结
    Java总结基础知识
    线程的状态和方法
    java对象序列化的理解
  • 原文地址:https://www.cnblogs.com/frisk/p/11639154.html
Copyright © 2011-2022 走看看