java 猴子称大王
程序员文章站
2022-09-14 09:10:25
思路:num为数组长度;维持一个同长度的数组,用来记录对应下标元素是否为标记,点中的猴子被标记 为0,即为淘汰,直至num=0时的那个元素即为最后一个猴子import java.util.Scanner;public class demo {/* * 猴子选大王 */public static void main(String[] args) {Scanner sc = new Scanner(System.in);int num = sc.nextInt();...
思路:
num为数组长度;维持一个同长度的数组,用来记录对应下标元素是否为标记,点中的猴子被标记 为0,即为淘汰,直至num=0时的那个元素即为最后一个猴子
import java.util.Scanner;
public class demo {
/*
* 猴子选大王
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int n = num;
int point = -1;
int reslut = 0;
int[] arr = new int[num];
for (int i = 0; i < arr.length; i++) {
arr[i] = 1;
}
while (num > 0) {
for (int i = 0; i <= 2; i++) { // 报数
point = (point + 1) % n;
while (arr[point] == 0) {//如果已经出列就
//让下一个未出列的猴子报数
point = (point + 1) % n;
}
if (i == 2 && arr[point] == 1) {// 出列
arr[point] = 0;
reslut = point + 1;
num--;
}
}
if (num == 0) {
System.out.println(reslut);
}
}
}
}
本文地址:https://blog.csdn.net/yeyinfan123/article/details/107144318