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