package second;
import java.util.ArrayList;
public class second {
/**
* 小朋友数数字的游戏 多个小朋友围成一圈,依次数数字,当数到指定数字是就退出,继续下一个从1开始数,如此循环 return 求出最后一个留下的小朋友
*
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 指定的数字
int num = 4;
// 指定数目的小朋友
int person[] = { 1, 2, 3, 4, 5 };
// 从第几个小朋友开始数
int beginperson = 1;
//需要删除的数组下标
int count=beginperson-1;
ArrayList<Integer> ai = new ArrayList<Integer>();
for (int i = 0; i < person.length; i++) {
ai.add(person[i]);
}
int numperson = CounGameMethod(num, ai, beginperson,count);
System.out.println("第" + numperson + "留了下来");
}
private static int CounGameMethod(int num, ArrayList<Integer> person, int beginperson,int count) {
if (person.size() != 1) {
if(beginperson==num)
{
System.out.println("第"+person.remove(count)+"个小朋友被淘汰");
if(count==person.size())
{
count=0;
}
beginperson=1;
}else{
beginperson++;
if(count<person.size()-1)
{
count++;
}else{
count=0;
}
}
return CounGameMethod(num, person, beginperson, count);
} else {
return person.get(0);
}
}
}
小朋友数数字的游戏 java实现算法
最新推荐文章于 2021-10-09 22:19:32 发布