【Java】100枚のカードをn毎目からn-1枚おきに裏返した結果


問題
スクリーンショット 2015-12-15 21.27.00



ゴミコード先輩

public class Main {
	
	private final static int MAX_CARD_NUM = 100;
	
	public static void main(String args[]){
		Map<Integer, Boolean> cards = init();
		for(int i = 2; MAX_CARD_NUM >= i; i++){
			int tmp = i;
			while(tmp <= MAX_CARD_NUM){
				boolean isUp = cards.get(tmp);
				if(isUp){
					cards.put(tmp, false);
				}else{
					cards.put(tmp, true);
				}
				tmp += i;
			}
		}
		printer(cards);
	}
	
	private static Map<Integer, Boolean> init(){
		Map<Integer, Boolean> cards = new HashMap<Integer, Boolean>();
		int index = 1;
		while(index <= MAX_CARD_NUM){
			cards.put(index, false);
			index++;
		}
		return cards;
	}
	
	private static void printer(Map<Integer, Boolean> cards){
		int index = 1;
		while(index <= MAX_CARD_NUM){
			if(!cards.get(index)){
				System.out.println(index);
			}
			index++;
		}
	}
}

個人的にはstatic void main(String arg[])の
中のforの中にwhileみたいなのをどうにかしてやりたい所存でした。

フィードバックで言われたのは
「順番に並んでる言うて言われてるんだからListで良いじゃん。」とのこと。

確かに・・・。
とりあえず朝日を眺めたら出直して来ます・・・。


最後まで読んでいただきありがとうございます。もしこの記事を気に入って頂けたようであればシェアをお願い致します。非常に励みになります。


コメントを残す