文件名称:survivor:给定以圆形方式放置的椅子数量,幸存者问题的解决方案
文件大小:2KB
文件格式:ZIP
更新时间:2024-07-26 17:23:50
Java
问题描述 100把椅子围成一圈。 这些椅子从一到一百依次编号。 在某个时间点,坐在#1 椅子上的人将被告知离开房间。 坐在#2 椅子上的人将被跳过,坐在#3 椅子上的人将被告知离开。 下一个是坐在#6 椅子上的人。 换句话说,最初会跳过 1 个人,然后是 2、3、4.. 等等。 这种跳过的模式会一直绕圈子,直到只剩下一个人, survivor 。 请注意,当人离开房间时,椅子会被移走。 解决方案 该程序使用 Java BitSet 类将每把椅子表示为一个位序列。 如果椅子被人占据,那么该位被设置,否则它不被设置。 遍历每个设置位以在每次迭代中跳过一定数量的椅子并获得必须删除的椅子编号。 一旦到达末尾,检查将返回到位集的开头,以循环方式执行此操作。
【文件预览】:
survivor-master
----src()
--------Survivor.java(3KB)
----README.md(1KB)