JAVA 基础题目

来源:百度知道 编辑:UC知道 时间:2024/07/07 04:33:45
2、 有一群人被困在了一个小岛上,他们只有一个竹排可以逃生,竹排只能坐一个人,于是他们决写通过玩退圈游戏来决定哪个人可以坐上竹排逃生。这些人围成了一个圆圈,从1开始每个人顺序编号,他们商定了一个不幸的数字X,然后,从编号为1的人开始报数,报到X的倍数就退出游戏,直到最后剩下一个人,这个人就是可以得到竹排的人。编写程序,在Main方法中输入玩游戏的人数和不幸的数字X,自定义Play方法按游戏规则进行游戏,方法返回赢的人编号.
有多少人参加游戏?3
数到哪个数字就退出?7
编号为3的人得到了竹排

package my;

import javax.swing.JOptionPane;

public class Test75 {
public static void main(String[] args) {
String s = JOptionPane.showInputDialog(null, "请输入认数:");
int n = Integer.parseInt(s);
String s2 = JOptionPane.showInputDialog(null, "请输入数到几的倍数退出:");
int tmp = Integer.parseInt(s2);
play(n,tmp);
}

private static void play(int num,int tmp) {
int people = num;// 总人数
int[] person = new int[people];
int count, flag, n, m;
for (n = 0; n < people; n++)
person[n] = n + 1;
count = 0;
flag = 0;
m = 0;
while (count < n - 1) {// 这里想剩下几个人就n减几,按你的要求留1个就减了1
if (person[flag] != 0)
m++;
if (m == tmp) {
person[flag] = 0;
count++;
m = 0;
}
flag++;
if (flag == n)
flag = 0;
}
System.out.print("剩下的人是:");
for (flag = 0;