华为OD机试真题 - 约瑟夫问题
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] map = Arrays.stream(in.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
int num = Integer.parseInt(in.nextLine());
List list = Arrays.stream(map).boxed().collect(Collectors.toList());
int initNum = Integer.parseInt(in.nextLine());
getResult(list, initNum);
}
public static void getResult(List<Integer> list, int initNum) {
int count = 1;
int index = 0;
while (!list.isEmpty()) {
if (index >= list.size()) {
index = 0;
continue;
}
if (count == initNum) {
if (list.size() == 1) {
System.out.print(list.get(index));
} else
System.out.print(list.get(index) + ",");
initNum = list.get(index);
list.remove(index);
count = 1;
continue;
}
index++;
count++;
}
System.out.println();
}
Scanner in = new Scanner(System.in);
int[] map = Arrays.stream(in.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
int num = Integer.parseInt(in.nextLine());
List list = Arrays.stream(map).boxed().collect(Collectors.toList());
int initNum = Integer.parseInt(in.nextLine());
getResult(list, initNum);
}
public static void getResult(List<Integer> list, int initNum) {
int count = 1;
int index = 0;
while (!list.isEmpty()) {
if (index >= list.size()) {
index = 0;
continue;
}
if (count == initNum) {
if (list.size() == 1) {
System.out.print(list.get(index));
} else
System.out.print(list.get(index) + ",");
initNum = list.get(index);
list.remove(index);
count = 1;
continue;
}
index++;
count++;
}
System.out.println();
}
全部评论
相关推荐
点赞 评论 收藏
分享