JavaStudy——0070:二進位制分類
阿新 • • 發佈:2018-11-15
總時間限制: 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();
}
}