342. Power of Four

LeetCode easy original: C# #bit-manipulation #csharp #easy #leetcode #math
Il testo del problema è tradotto dal russo per la lingua selezionata. Il codice resta invariato.

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

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

Esempio

Input: n = 16

Output: true

C# soluzione

abbinato/originale
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++ soluzione

bozza automatica, rivedere prima dell'invio
#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 soluzione

abbinato/originale
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 soluzione

abbinato/originale
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 soluzione

abbinato/originale
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

offerte attive with overlapping task tags are mostrati.

Tutte le offerte
Non ci sono ancora offerte attive.