需求分析:有n个人一起报数,报道数字m的人则退出游戏,然后又重新开始报数,如此循环,最后只剩下一个人则停止报数,输出这个人的位置。
算法设计:
package nine;
public class PaoSJ{
public static void main(String [] argc){
//确定游戏人数,用数组存储
int[] arr=new int[100];
addArr(arr);
System.out.println(circleArr(arr));
}
//给数组赋值
public static void addArr(int [] arr){
for(int i=0;i<arr.length;i++){
arr[i]=1;
}
}
//做循環找到最後剩下的數
public static int circleArr(int[] arr){
int index=arr.length;//要報的數
int i=0;//返回数字序号
int m=0;//循環數
int x=0;//接收最後剩下的人的下標
while(index>1){
//报数
if(arr[i]==1){
m++;
//找到退出的人,退出操作,第一个循环实现
if(m==3){
arr[i]=0;
index--;