342. Power of Four

LeetCode easy original: C# #bit-manipulation #csharp #easy #leetcode #math
선택한 UI 언어에 맞게 문제 텍스트를 러시아어에서 번역합니다. 코드는 변경하지 않습니다.

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

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

예제

Input: n = 16

Output: true

C# 해법

매칭됨/원본
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++ 해법

자동 초안, 제출 전 검토
#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 해법

매칭됨/원본
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 해법

매칭됨/원본
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 해법

매칭됨/원본
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

활성 채용 with overlapping task tags are 표시됨.

전체 채용
아직 활성 채용이 없습니다.