数値を間隔で繰り返し削除
1036 ワード
坊主殺し問題!王は100人の和尚を殺す.この100人のお坊さんを1~100番に編みます(java筆記試験)
Javaの筆記試験の問題は、王が100人の和尚を殺すということだ.この100人のお坊さんを1~100番に編みます.王には100人を大きな円に囲むルールがある.1番和尚さんから、5まで数えたら殺して、殺された和尚さんの次から1を数えて、5まで数えて殺して、このままずっと殺して、番号を聞いて何番の和尚さんが生きていますか?つまり1つだけ生きていて、それは何番ですか?
Javaの筆記試験の問題は、王が100人の和尚を殺すということだ.この100人のお坊さんを1~100番に編みます.王には100人を大きな円に囲むルールがある.1番和尚さんから、5まで数えたら殺して、殺された和尚さんの次から1を数えて、5まで数えて殺して、このままずっと殺して、番号を聞いて何番の和尚さんが生きていますか?つまり1つだけ生きていて、それは何番ですか?
public static void main(String[] args) {
List list = new ArrayList();
for (int i = 1; i <= 10; i++)
list.add(i);
// 1-5
int i = 1;
// ,
while (list.size() > 1) {
// list
for (int j = 0; j < list.size(); j++) {
if (i == 5) {
//
System.out.println(list.get(j));
list.remove(j);
// , , -1
j--;
// , ,
if (i > list.size()) {
i = 1;
break;
}
// 1 , 1 , ++, i=0, 1
i = 0;
}
i++;
}
}
System.out.println("result:" + list.get(0));
}