毎日アルゴリズム01
2199 ワード
0-nのすべての数が昇順で構成されたシーケンスについてフィルタリングを行い、すべての数が小さいから大きいまで奇数番目の数を取り、それを破棄し、最後の数しか残っていないまでこのプロセスを繰り返し、最後の数を要求します.
package com.zzw.cacl;
import java.util.Scanner;
public class Suanfa02 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int num=sc.nextInt()+1;
boolean[] arr=new boolean[num];
int left=num;
int count=0;
int index=0;
while(left!=0){
count =0;
for(int i=0;i<num;i++){
if(!arr[i]){
count++;
if((count&1)==1){
arr[i]=true;
left--;
index=i;
}
}
}
}
System.out.println(index);
}
}
}