Доброго времени суток! Надеюсь подкрадывающаяся вторая волна коронавируса не слишком сильно ударила по вам и с первой задачей всё понятно. Если нет, пишите в комментариях. А сегодня мы познакомимся с двумя отличными методами и с их помощью решим очередную задачку. Итак, встречайте: Math.abs() и Integer.bitCount. Далеко ходить не будем, задача: Реализуйте метод isPowerOfTwo, проверяющий, является ли заданное число по абсолютной величине степенью двойки: На самом деле, решений тут несколько. Например: Я разберу здесь самый, наверное, удобный, первый вариант...
Дано: целое число n, верните true, если оно является степенью двойки. В противном случае возвращается false.
Пример 1:
Дано: n = 1
Выход: true
Пример 2:
Дано: n = 16
Выход: true
Пример 3:
Дано: n = 3
Выход: false
Ограничения:
-2^31 <= n <= 2^31 - 1 Решения: 1) Наивный подход class Solution:
def isPowerOfTwo(self, n: int) -> bool:
if n <= 0:
return False
if n == 1:
return True
while (n % 2 == 0):
n /= 2
return n == 1 Отсекаем...