题目描述
若将一个正整数化为二进制数,在此二进制数中,我们将数字 11 的个数多于数字 00 的个数的这类二进制数称为 AA 类数,否则就称其为 BB 类数。
例如:
(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 类数;
给出一个十进制数,请判断它是 A 类数还是 B 类数。
输入描述
一个十进制正整数,不大于 100000。
输出描述
如果是 A 类数,输出 A。
如果是 B 类数,输出 B。
样例输入 1
13
样例输出 1
A
样例输入 2
10
样例输出 2
B
样例输入 3
24
样例输出 3
B
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner read = new Scanner(System.in);
int x = read.nextInt();
String s = Integer.toString(x,2);
int oneCount = 0;
for(int i=0;i<s.length();i++)
{
if(s.charAt(i)=='1')
oneCount++;
}
if(oneCount>(s.length()-oneCount))
System.out.println("A");
else
System.out.println("B");
read.close();
}
}