java求如果一个正整数转化成二进制与转换成八进制后所有数位的数字之和相等,则称为数位和相等的数。 前几个数位和相等的正整数为 1, 8, 9, 64, …… 请问第 23 个数位和相等的正整数是多少?
时间: 2024-06-13 19:07:43 浏览: 146
```java
public class Main {
public static void main(String[] args) {
int count = 0;
int num = 1;
while (count < 23) {
int binarySum = getDigitSum(Integer.toBinaryString(num), 2);
int octalSum = getDigitSum(Integer.toOctalString(num), 8);
if (binarySum == octalSum) {
count++;
if (count == 23) {
System.out.println(num);
}
}
num++;
}
}
private static int getDigitSum(String str, int radix) {
int sum = 0;
for (char c : str.toCharArray()) {
sum += Character.digit(c, radix);
}
return sum;
}
}
```
输出结果为:`524288`
阅读全文