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

 

    原文作者:撒欢
    原文地址: https://www.cnblogs.com/frisk/p/11639154.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞