Проблема со степенью четырех
Получив целое число (32 бита со знаком), напишите функцию, которая проверяет, является ли оно степенью числа 4.
Пример 1:
Input: 16 Output: true
Пример 2:
Input: 5 Output: false
Дополнение. Не могли бы вы решить проблему без циклов/рекурсии?
Решение
Первое, что пришло мне в голову, это использование рекурсии/циклов, но, как вы можете видеть в разделе Последующие действия, нам предлагается попробовать не использовать их.
Чтобы сделать это без циклов, нужно мыслить более математически.
Итак, чтобы узнать, является ли число X степенью числа 4, нам просто нужно проверить, дает ли нам логарифм этого числа X по основанию 4 целое число.
Здесь вы можете увидеть производительность моего решения:
Вы можете подписаться на меня в LinkedIn.