题解 | 约瑟夫环

约瑟夫环

https://www.nowcoder.com/practice/e417cfe32c74416ca38247f619ddb322

import java.util.ArrayList;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            int k = in.nextInt();
            int m = in.nextInt();
            ArrayList<Integer> list = new ArrayList<Integer>();
            boolean baoshu = false;
            int count = 0; 
            int j = -1;
            for(int i = 0;i<n;i++)
            {
                list.add(i);
            }
            while(list.size()>1){
                j ++;
                if(j  == k && !baoshu)
                {
                    baoshu = true; 
                }
                if(baoshu){
                    count++;
                }
                // System.out.println("000:"+list.toString() +",j:"+j+",count:"+count);
                if(count == m){    
                    count = 0 ;
                    if(j  == list.size()-1 ){
                        list.remove(j);
                        j =  -1;
                    }else{
                        list.remove(j);
                        j = j-1;
                    }

                    //  System.out.println("111:"+list.toString() +",j:"+j+",count:"+count);
                }else{
                     if(j  == list.size()-1 ){
                        j  =-1;
                     }
                    //  System.out.println("222:"+list.toString() +",j:"+j+",count:"+count);
                }
            }
            System.out.println(list.get(0));
        }
    }
}

全部评论

相关推荐

06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务