有500个人手拉手站成一圈,从一个人开始数1,2,3。数到3的人退出圈外,下个人继续数1,2,3
问最后剩下的人是原来的 第几个人,下面代码是有一般做法解题。
用面向对象的思路应该怎么做
class Count3Quit
{
public static void main(String[] args)
{
boolean[] arr = new boolean[500];
for (int i=0; i<arr.length; i++)
{
arr[i] = true;
}
int leftCount = arr.length;
int countNum = 0;
int index = 0;
while (leftCount > 1)
{
if (arr[index] == true)
{
countNum ++;
if (countNum == 3)
{
countNum = 0;
arr[index] = false;
leftCount --;
}
}
index ++;
if (index == arr.length)
{
index = 0;
}
}
for (int i=0; i<arr.length; i++)
{
if (arr[i] == true)
{
System.out.println("最后一个人是第"+(i+1)+"个人");
}
}
}
}
|