Вопрос:

Цель: работа с двоичной системой счисления Задание: Метод is PowerOfTwo Реализуй метод is PowerOfTwo, проверяющий, является ли заданное число по абсолютной величине степенью двойки. Решать можно разными способами: • Воспользовавшись одним удобным статическим методом из класса java.lang.Integer. • Применив пару трюков из двоичной арифметики. • Написав решение «"в лоб» с циклом и условными операторами. Можешь вернуться к этой задаче после просмотра соответствующих уроков. Пример ввода 1:0 Пример возвращаемого значения 1: false Пример ввода 2: 1 Пример возвращаемого значения 2: true Пример ввода 3: -2 Пример возвращаемого значения 3: true Требования: 1. Метод должен быть public. 2. Метод должен быть static. 3. Передаваемый параметр должен иметь тиn int.

Смотреть решения всех заданий с листа

Ответ:

Краткое пояснение: Метод isPowerOfTwo должен проверять, является ли заданное число степенью двойки по абсолютной величине.

Пример реализации метода isPowerOfTwo на Java:

public class Solution {
    /
     * Проверяет, является ли заданное число степенью двойки.
     *
     * @param n Проверяемое число.
     * @return true, если число является степенью двойки, иначе - false.
     */
    public static boolean isPowerOfTwo(int n) {
        if (n <= 0) {
            return false;
        }
        // Число является степенью двойки, если у него только один установленный бит.
        return (n & (n - 1)) == 0;
    }

    public static void main(String[] args) {
        // Примеры использования метода
        System.out.println("0: " + isPowerOfTwo(0)); // false
        System.out.println("1: " + isPowerOfTwo(1)); // true
        System.out.println("2: " + isPowerOfTwo(2)); // true
        System.out.println("-2: " + isPowerOfTwo(-2)); // false
        System.out.println("3: " + isPowerOfTwo(3)); // false
        System.out.println("4: " + isPowerOfTwo(4)); // true
        System.out.println("8: " + isPowerOfTwo(8)); // true
    }
}

Пояснения:

  • Условие 1: if (n <= 0) { return false; } – отрицательные числа и ноль не являются степенями двойки.
  • Условие 2: (n & (n - 1)) == 0 – этот трюк с битовой арифметикой проверяет, что у числа n только один бит установлен в 1. Степени двойки в двоичном представлении всегда имеют только один бит равный 1 (например, 2 = 10, 4 = 100, 8 = 1000).

Ответ: Метод isPowerOfTwo проверен и работает согласно условию задачи.

ГДЗ по фото 📸
Подать жалобу Правообладателю