1. 程式人生 > >JavaStudy——0070:二進位制分類

JavaStudy——0070:二進位制分類

總時間限制: 1000ms 記憶體限制: 65536kB

描述
若將一個正整數化為二進位制數,在此二進位制數中,我們將數字1的個數多於數字0的個數的這類二進位制數稱為A類數,否則就稱其為B類數。
例如:
(13)10 = (1101)2,其中1的個數為3,0的個數為1,則稱此數為A類數;
(10)10 = (1010)2,其中1的個數為2,0的個數也為2,稱此數為B類數;
(24)10 = (11000)2,其中1的個數為2,0的個數為3,則稱此數為B類數;
程式要求:求出1~1000之中(包括1與1000),全部A、B兩類數的個數。

輸入

輸出
一行,包含兩個整數,分別是A類數和B類數的個數,中間用單個空格隔開。

Accepted程式碼

public class Main {
    public static void main(String[] args) {
    	int classa=0,classb=0;
        for(int i=1;i<=1000;i++) {
        	int one=0;
        	int zero=0;
        	int now=i;
        	while(now!=0) {
        		int r=now%2;
        		if(r==1) one++;
        		else if(r==0) zero++
; now/=2; } if(one>zero) classa++; else classb++; } System.out.println(classa+" "+classb); in.close(); } }