新建 文本文档.txt

来自「约瑟夫圈问题」· 文本 代码 · 共 37 行

TXT
37
字号
package day2;
import java.util.*;
public class YSF {
        private final static int PEOPLE = 30;//总人数
        private final static int LEAVE = 20;//报数
        public static void main(String[] args) {
                LinkedList<Integer> ll= new LinkedList<Integer>();
                //编号
                for(int i=1;i<=PEOPLE;i++){
                        ll.add(i);
                }
                //初始化
                int count = 1;//计数用
                int mp = 0;//movePeople指针
                //程序主体
                while(true){
                        if(ll.size()==1)break;//只剩一个退出
                        if(mp == ll.size())mp = 0;//到头了返回
                        if(count == LEAVE){
                                System.out.print(ll.get(mp)+" ");//输出出圈人的编号
                                ll.remove(mp);//出圈
                                count = 1;//计算器复位
                                continue;//继续下一轮
                        }
                        ++ count;//计算器加1
                        ++ mp;//指针下移
                }
                
                //输出
                System.out.println();
                for(Integer i:ll){
                        System.out.print(i+" ");
                }

        }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?