кодесурса

Java Math Exercises: Найти длину самой длинной последовательности нулей в двоичном представлении целого числа

script1adsense2code
script1adsense3code

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code