每天算法01

對於一個由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);
        }


    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章