来源:牛客网
题目描述
n个人(0,1,2,3,4…n-1),围成一圈,从编号为k的人开始报数,报数报到m的人出队(报数是1,2,…m这样报的)。下次从出队的人之后开始重新报数,循环往复,当队伍中只剩最后一个人的时候,那个人就是大王。现在,给定n,k,m,
请你求出大王的编号。
输入描述:
输入一行包含三个整数n,k,m
1<=n<=100,1<=k<=n-1,1<=m<=100
输出描述:
输出一个整数
输入:5 1 2
输出:3
代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int k=in.nextInt();//编号为k开始
int m=in.nextInt();//m出队
ArrayList<Integer> list = new ArrayList();
for (int i = 0; i < n; i++) {
list.add(i);
}
for (int i = k; list.size() != 1; ) {
i = i + (m - 1);
if (i >= list.size()) {
i = i % list.size();
}
list.remove(i);
}
System.out.println(list.get(0));
}
}