Java Math Exercises: Найти длину самой длинной последовательности нулей в двоичном представлении целого числа
Java Math Exercises: Упражнение 13 с решением
Напишите программу на Java, чтобы найти длину самой длинной последовательности нулей в двоичном представлении целого числа.
Пример примера:
Число 7 имеет двоичное представление 111 и не имеет двоичных пробелов.
Число 8 имеет двоичное представление 1000 и содержит двоичный пробел длиной 0.
Число 457 имеет двоичное представление 111001001 и содержит двоичный пробел длины 2.
Число 40 имеет двоичное представление 101000 и содержит один двоичный пробел длины 1.
Число 12546 имеет двоичное представление 11000100000010 и содержит самый большой двоичный пробел длины 6.
Пример решения :
Java-код:
import java.util.*;
public class Example13 {
public static void main(String[] args){
int dec_num, rem, quot, i=1, j;
int bin_num[] = new int[100];
Scanner scan = new Scanner(System.in);
System.out.print("Input a Decimal Number : ");
dec_num = scan.nextInt();
quot = dec_num;
while(quot != 0)
{
bin_num[i++] = quot%2;
quot = quot/2;
}
String binary_str="";
System.out.print("Binary number is: ");
for(j=i-1; j>0; j--)
{
binary_str = binary_str + bin_num[j];
}
System.out.print(binary_str);
i = binary_str.length()-1;
while(binary_str.charAt(i)=='0') {
i--;
}
int length = 0;
int ctr = 0;
for(; i>=0; i--) {
if(binary_str.charAt(i)=='1') {
length = Math.max(length, ctr);
ctr = 0;
} else {
ctr++;
}
}
length = Math.max(length, ctr);
System.out.println("\nLength of the longest sequence: "+length);
}
}
Пример вывода:
Введите десятичное число: 7 Двоичный номер: 111 Длина самой длинной последовательности: 0
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования