輸入描述:
每組數據一行一個數字,為題目中的n(n小於等於1000)。
輸出描述:
一行輸出最后剩下的數字。
我的思路是用兩個鏈表,一個用於存儲原數據,一個用於存儲要丟掉的數據,再循環從元數據中剔除掉即可。
public static void main(String[] args) { int size = 5000; LinkedList<Integer> integers = intToLList(size); LinkedList<Integer> integers2 = new LinkedList<>(); while (integers.size() != 1) { for (int i = 0; i < integers.size(); i++) { if ((i+1)%2 != 0) { integers2.add(integers.get(i)); } } for (Integer integer : integers2) { integers.remove(integer); } } System.out.println(integers.get(0)); } private static LinkedList<Integer> intToLList(int n) { LinkedList<Integer> integers = new LinkedList<>(); for (int i = 0; i <= n; i++) { integers.add(i); } return integers; }
