我正在尝试找出二进制数中连续1的数量。
例如:将十进制数转换为二进制并查找连续的1。
static int count = 0;
static int max = 0;
static int index = 1;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
scan.close();
String b = Integer.toBinaryString(n);
char[] arr = b.toCharArray();
System.out.println(arr);
for (int i = 0; i < b.length(); i++) {
if (arr[i] == index) {
count++;
} else {
count = 0;
}
if (count > max) {
max = count;
}
}
System.out.println(max);
}
我总是得到0。看起来好像我的代码中的条件没有起作用。您能否就我在哪里做错了提供建议?
'1'
转换为int
后,其值并不是1
,因此arr[i] == index
永远不会成立。相反,您需要将index
设置为一个具有值'1'
的字符。 - azurefrog