m個人が一周してずっと新聞を打ちます。最後の人がアウトになるまで残ります。アウトした人の座標を印刷します。

1115 ワード

package des.tiny.test.other;

/**
 * 
 * @ClassName: OutGame
 * @Description: m          n,               ,          
 * @author [email protected]
 * @date 2015 4 15    8:16:34
 */
public class OutGame {
	public static void main(String[] args) {
		int allCount = 9;
		final int roundCount = 3;
		final int arrSize = allCount;
		boolean[] arr = new boolean[arrSize];
		initArr(arr, Boolean.TRUE.booleanValue());
		int initIndex = 0;//      
		while (allCount > 0) {
			int count = 0;
			for (int i = initIndex; i < arrSize; i++) {
				if (arr[i]) {
					count++;
				}
				if (count == roundCount) {
					System.out.println(i + 1);
					arr[i] = Boolean.FALSE.booleanValue();
					initIndex = i + 1;//             
					if (initIndex == arrSize)
						initIndex = 0;//       ,     
					break;
				}
				//     
				if (i == arrSize-1 && count < roundCount) {
					i = -1;//         i++; 0  ,    -1;
				}
			}
			allCount--;
		}
	}

	//        
	private static void initArr(boolean[] arr, boolean flag) {
		for (int i = 0; i < arr.length; i++) {
			arr[i] = flag;
		}
	}
}