毎日アルゴリズム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);
        }


    }

}