326. Power of Three
Le texte du problème est traduit du russe pour la langue sélectionnée. Le code reste inchangé.
given entier n. return true, если оно является степенью тройки, иначе return false.
entier n является степенью тройки, если существует entier x такое, что n == 3^x.
Exemple
Input: n = 27
Output: true
Explanation: 27 = 3^3
C# solution
correspondant/originalpublic class Solution {
public bool IsPowerOfThree(int n) {
if (n <= 0) return false;
while (n % 3 == 0) {
n /= 3;
}
return n == 1;
}
}
C++ solution
brouillon automatique, à relire avant soumission#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 IsPowerOfThree(int n) {
if (n <= 0) return false;
while (n % 3 == 0) {
n /= 3;
}
return n == 1;
}
}
Java solution
correspondant/originalpublic class Solution {
public boolean isPowerOfThree(int n) {
if (n <= 0) return false;
while (n % 3 == 0) {
n /= 3;
}
return n == 1;
}
}
JavaScript solution
correspondant/originalvar isPowerOfThree = function(n) {
if (n <= 0) return false;
while (n % 3 === 0) {
n = Math.floor(n / 3);
}
return n === 1;
};
Python solution
correspondant/originalclass Solution:
def isPowerOfThree(self, n: int) -> bool:
if n <= 0:
return False
while n % 3 == 0:
n //= 3
return n == 1
Go solution
correspondant/originalfunc isPowerOfThree(n int) bool {
if n <= 0 {
return false
}
for n % 3 == 0 {
n /= 3
}
return n == 1
}
Algorithm
Проверка начального значения
Если n меньше или равно нулю, вернуть false, так как степени тройки всегда положительны.
Цикл деления на 3
Пока n делится на 3 без остатка, делите n на 3. Повторяйте этот процесс до тех пор, пока n делится на 3.
Проверка конечного значения
Если после всех делений значение n стало равно 1, значит исходное number является степенью тройки, вернуть true. В противном случае вернуть false.
😎
Vacancies for this task
offres actives with overlapping task tags are affichés.
Il n'y a pas encore d'offres actives.