def is_power_of (numéro, base):
# Cas de base: lorsque le numéro est inférieur à la base.
Remplissez les blancs pour rendre la fonction IS_Power_Of renvoyer si le nombre est une puissance de la base donnée. Remarque: la base est supposée être un nombre positif. Conseil: Pour les fonctions qui renvoient une valeur booléenne, vous pouvez renvoyer le résultat d'une comparaison.
10 Réponses :
Vous pouvez toujours essayer une force brute.
def is_power_of(number,base):
if number%base or base==1: return False # preliminary check for divisibility
i=1
while i<number:
i*=base
if i==number: return True
return False
def is_power_of(number, base):
if number<base or base==1: return False
i=1
while i<number:
i*=base
if i==number:
return True
return False
return is_power_of(number,base)
Ce serait une meilleure réponse si vous avez expliqué comment le code que vous avez fourni des réponses à la question.
retour is_power_of (numéro, base) code> ne fait rien. Le code s'arrête au renvoie false code>.
def is_power_of(number,base):
if number == base:
return True
elif number < base:
return False
return is_power_of(number / base, base)
It is done by recursion
Premièrement, vous pouvez formater votre code avec les backtsticks. Deuxièmement, votre si code> est dans le mauvais cas.
Je ne suis pas un professionnel. Et je suis nouveau ici j'ai essayé de répondre à la question ci-dessus, mon meilleur, même j'ai essayé de télécharger une photo avec des solutions et je ne peux pas le télécharger. Ce code fonctionne réellement. Je ne sais pas comment écrire une forme de code correcte ici. J'ai beaucoup souffert avec cette question, jusqu'à ce que je ne puisse pas trouver une.At dernier, je l'ai compris. Neuf Way Merci pour votre commentaire précieux.Je vais essayer d'améliorer
@ SINAN9605, s'il vous plaît voir Modification de l'aide pour savoir comment formater vos questions et réponses.
Merci mec 👍.Je en rattrapant avec ça. Merci de votre aide
Aucune force de récursion ni de force brute n'est requise. Il suffit de logarithmes.
Lorsque vous avez Si vous souhaitez gérer également des nombres négatifs, vous pouvez simplement calculer x, puis vérifier que numéro = base ** x code>, vous obtenez x = journal (numéro) / journal (base) code>. Vérification simplement si X est un entier devrait vous donner la réponse. P> base ** x code> est égal à numéro code> p>
Sous Cas de base, Numéro de retour == 1 Pour devenir vrai ou faux si la base est en effet une base.
Déclarez une nouvelle variable n = numéro / base pour permettre la récupération de récursivité IS_Power_Of (n, base) de continuer jusqu'à ce que le boîtier de base (N
def is_power_of(number, base):
# Base case: when number is smaller than base.
if number < base:
# If number is equal to 1, it's a power (base**0).
return number == 1
result = number//base
# Recursive case: keep dividing number by base.
return is_power_of(result, base)
La bonne façon de le faire consiste à utiliser la récursivité car il est demandé dans le chapitre de cet exercice.
Cela fonctionnera donc comme ceci P>
def is_power_of(number, base): # Base case: when number is smaller than base. number= number/base if number < base: # If number is equal to 1, it's a power (base**0). return False else: return True return is_power_of(number, base) print(is_power_of(8,2)) # Should be True print(is_power_of(64,4)) # Should be True print(is_power_of(70,10)) # Should be False
def is_power_of(number, base):
# Base case: when number is smaller than base.
if number < base:
# If number is equal to 1, it's a power (base**0).
return number==1
# Recursive case: keep dividing number by base.
return is_power_of(number/base, base)
print(is_power_of(8,2)) # Should be True
print(is_power_of(64,4)) # Should be True
print(is_power_of(70,10)) # Should be False
Juste suivre les commentaires
def is_power_of(number, base):
if number < base:
return number==1
return is_power_of(number/base,base)
print(is_power_of(8,2))
print(is_power_of(64,4))
print(is_power_of(70,10))
def is_power_of(number, base):
number =number/base
# Base case: when number is smaller than base.
if number < base:
# If number is equal to 1, it's a power (base**0).
return False
if number > base:
return True
# Recursive case: keep dividing number by base.
return is_power_of(number, base)
print(is_power_of(8,2)) # Should be True
print(is_power_of(64,4)) # Should be True
print(is_power_of(70,10)) # Should be False
output
True
True
False
Cela ressemble à un exercice. Qu'est-ce que tu as essayé jusque-là?
Est-ce une question de codegolf.stackege.com?
Maintenant, j'ai trouvé sa solution à l'aide de la méthode Math.Pow ().