342. Power of Four

LeetCode easy original: C# #bit-manipulation #csharp #easy #leetcode #math
O texto da tarefa é traduzido do russo para o idioma selecionado. O código permanece sem alterações.

given inteiro n. return true, если оно является степенью числа четыре. В противном случае return false.

inteiro n является степенью числа четыре, если существует inteiro x такое, что n == 4^x.

Exemplo

Input: n = 16

Output: true

C# solução

correspondente/original
public class Solution {
    public bool 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);
    }
}

C++ solução

rascunho automático, revisar antes de enviar
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public bool 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);
    }
}

Java solução

correspondente/original
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);
    }
}

JavaScript solução

correspondente/original
var isPowerOfFour = function(n) {
    if (n <= 0) return false;
    const log_n_base_4 = Math.log(n) / Math.log(4);
    return log_n_base_4 === Math.floor(log_n_base_4);
};

Python solução

correspondente/original
class Solution:
    def isPowerOfFour(self, n: int) -> bool:
        if n <= 0:
            return False
        import math
        log_n_base_4 = math.log(n, 4)
        return log_n_base_4.is_integer()

Algorithm

Проверка неотрицательности:

Убедитесь, что n больше нуля, так как степени числа четыре всегда положительны.

Проверка логарифмом:

Используйте логарифм для проверки, является ли number степенью четырех. number n является степенью четырех, если логарифм n по основанию 4 является целым numberм.

Проверка побитовым оператором:

number является степенью четырех, если оно является степенью двух (только один бит установлен) и количество нулей после этого бита четно.

😎

Vacancies for this task

vagas ativas with overlapping task tags are mostradas.

Todas as vagas
Ainda não há vagas ativas.