日期:2014-05-20 浏览次数:21026 次
import java.util.LinkedList;
import java.util.List;
public class Temp
{
public static void main(String args[])
{
System.out.println(getLastOne(500, 3));
}
public static int getLastOne(int length, int del)
{
List<Integer> list = new LinkedList<Integer>();
for(int i = 1; i <= length; i++)
{
list.add(i);
}
while(list.size() > 1)
{
delOne(list, del);
}
return list.get(0);
}
public static void delOne(List<Integer> list, int del)
{
for(int i = 0; i < del - 1; i++)
{
list.add(list.get(i));
}
for(int i = 0; i < del; i++)
{
list.remove(0);
}
}
}
------解决方案--------------------
import java.util.*;
public class TestCollection
{
public static void main(String[] args)
{
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 1; i <= 500; i++)
{
list.add(i);
}
int k = 0;
while (list.size() > 1)
{
if (k >= list.size())
k = list.size() - 1;
if (k > list.size() - 3)
{
k = k + 2 - list.size();
}
else
{
k += 2;
}
System.out.println(list.get(k));
list.remove(k);
}
System.out.println("It's me!" + list.get(0));
}
}