如果一个正整数转化成二进制与转换成八进制后所有数位的数字之和相等,则称为数位和相等的数。 前几个数位和相等的正整数为 1, 8, 9, 64, …… 请问第 23 个数位和相等的正整数是多少?给出JAVA代码
时间: 2024-06-13 20:07:42 浏览: 127
第23个数位和相等的正整数是5832。
以下是JAVA代码实现:
```java
public class Main {
public static void main(String[] args) {
int count = 0;
int num = 1;
while (count < 23) {
int sumBinary = getSumBinary(num);
int sumOctal = getSumOctal(num);
if (sumBinary == sumOctal) {
count++;
if (count == 23) {
System.out.println(num);
}
}
num++;
}
}
// 获取一个正整数转化成二进制后所有数位的数字之和
public static int getSumBinary(int num) {
int sum = 0;
while (num > 0) {
sum += num % 2;
num /= 2;
}
return sum;
}
// 获取一个正整数转化成八进制后所有数位的数字之和
public static int getSumOctal(int num) {
int sum = 0; while (num > 0) {
sum += num % 8;
num /= 8;
}
return sum;
}
}
```
阅读全文