日期:2014-05-20 浏览次数:20817 次
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)); } }