Проблема со степенью четырех

Получив целое число (32 бита со знаком), напишите функцию, которая проверяет, является ли оно степенью числа 4.

Пример 1:

Input: 16
Output: true

Пример 2:

Input: 5
Output: false

Дополнение. Не могли бы вы решить проблему без циклов/рекурсии?

Решение

Первое, что пришло мне в голову, это использование рекурсии/циклов, но, как вы можете видеть в разделе Последующие действия, нам предлагается попробовать не использовать их.

Чтобы сделать это без циклов, нужно мыслить более математически.

Итак, чтобы узнать, является ли число X степенью числа 4, нам просто нужно проверить, дает ли нам логарифм этого числа X по основанию 4 целое число.

Здесь вы можете увидеть производительность моего решения:

Вы можете подписаться на меня в LinkedIn.