- //用了一个很笨的方法,水平有限,还在学基础。
- import java.util.Scanner;
- class Demo
- {
- static int renShu;
- static int weiZhi;
- static int geiZeShu;
- public static void main(String[] args)
- {
- System.out.print("请输入参加游戏的人数:");
- Scanner in = new Scanner(System.in);
- renShu = in.nextInt();
- int[] arr = new int[renShu];
- geiZeShu = 3;//此处的规则数可以重新设定
- weiZhi = search(arr,geiZeShu);
- System.out.println("剩下的是第"+weiZhi+"个小朋友。");
- }
- public static int search(int[] arr,int x)//循环数数,直至最后一个小朋友
- {
- x = geiZeShu;
- int m = 0;
- int n = 0;
- for (int i = 0;i<arr.length;i++)//确定所有人的位置
- {
- arr[i] = 1;
- }
- for (int i = 0;i<=arr.length;i++)
- {
- if (i==arr.length)//尾部接上头部,继续循环
- {
- if (n==1)//只剩一个人时,游戏结束
- {
- return searchIndex(arr,1);
- }
- i = 0;
- n = 0;
- }
- if (arr[i]==1)//剩余的小朋友继续数数
- {
- m++;
- n++;
- }
- if (m==x)//数到规则数的人退出,再重新开始数
- {
- m = 0;
- arr[i] = x;
- }
-
- }
- return -1;
- }
- public static int searchIndex(int[] arr,int j)//找出剩下的最后一个小朋友的位置
- {
- for (int i = 0;i<arr.length;i++)
- {
- if (arr[i]==j)
- return i+1;
- }
- return -1;
- }
- }
复制代码 |