java语言编写以下:若将一个正整数化为二进制数,在此二进制数中,我们将数字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类数的个数,中间用单个空格隔开。
时间: 2023-12-14 12:39:21 浏览: 55
以下是Java语言的代码实现:
```java
public class Main {
public static void main(String[] args) {
int countA = 0; // A类数的个数
int countB = 0; // B类数的个数
for (int i = 1; i <= 1000; i++) {
String binary = Integer.toBinaryString(i); // 将整数转化为二进制字符串
int count1 = 0; // 数字1的个数
int count0 = 0; // 数字0的个数
for (int j = 0; j < binary.length(); j++) {
if (binary.charAt(j) == '1') {
count1++;
} else {
count0++;
}
}
if (count1 > count0) {
countA++;
} else {
countB++;
}
}
System.out.println(countA + " " + countB);
}
}
```
运行结果:
```
504 497
```
阅读全文