Сложность: easy
Дано целое число n. Верните true, если оно является степенью числа четыре. В противном случае верните false.
Целое число n является степенью числа четыре, если существует целое число x такое, что n == 4^x.
Пример:
Input: n = 16
Output: true
👨💻 Алгоритм:
1⃣Проверка неотрицательности:
Убедитесь, что n больше нуля, так как степени числа четыре всегда положительны.
2⃣Проверка логарифмом:
Используйте логарифм для проверки, является ли число степенью четырех. Число n является степенью четырех, если логарифм n по основанию 4 является целым числом.
3⃣Проверка побитовым оператором:
Число является степенью четырех, если оно является степенью двух (только один бит установлен) и количество нулей после этого бита четно.
😎 Решение:
public class Solution {
public boolean isPowerOfFour(int n) {
if (n <= 0) return false;
double log_n_base_4 = Math.log(n) / Math.log(4);
return log_n_base_4 == Math.floor(log_n_base_4);
}
}Ставь 👍 и забирай 📚 Базу знаний