华为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();
}
全部评论
相关推荐
小舰大杀四方:现在的就业环境真是艰难,你好歹磕磕绊绊也走过三面了,回答的肯定也不错,尤其是hr面问了你这么多问题,,,结果一周都没消息。想知道现在的公司到底在高贵什么啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
查看29道真题和解析