本文主要是介绍分配工号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今年7月份vivo迎来了新入职的大学生,现在需要为每个新同事分配一个工号。人力资源部同事小v设计了一个方法为每个人进行排序并分配最终的工号,具体规则是:
将N(N<10000)个人排成一排,从第1个人开始报数;如果报数是M的倍数就出列,报到队尾后则回到队头继续报,直到所有人都出列;
最后按照出列顺序为每个人依次分配工号。请你使用自己擅长的编程语言帮助小v实现此方法。
private static String solution(int[] input) {// TODO Write your code hereint N = input[0];int M = input[1];List<Integer> list = new ArrayList<>();StringBuffer sb = new StringBuffer();for(int i=1;i<=N;i++){list.add(i);//构造数组1~N}int count = 0;//存储上一个分配到工号的人的位置for(int i=1;list.size()>1;i++){if(i%M==0){sb.append(list.remove(count)+" ");}else{count++;}if(count>=list.size()){count = count - list.size();}}sb.append(list.get(0));return sb.toString();//return null;}
这篇关于分配工号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!