-2
votes

Comment puis-je calculer le numéro d'un autre numéro ou non?

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. xxx


3 commentaires

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 ().


10 Réponses :


0
votes

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


0 commentaires

0
votes
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)  

2 commentaires

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) ne fait rien. Le code s'arrête au renvoie false .



0
votes
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

4 commentaires

Premièrement, vous pouvez formater votre code avec les backtsticks. Deuxièmement, votre si 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



1
votes

Aucune force de récursion ni de force brute n'est requise. Il suffit de logarithmes.

Lorsque vous avez numéro = base ** x , vous obtenez x = journal (numéro) / journal (base) . Vérification simplement si X est un entier devrait vous donner la réponse. xxx

Si vous souhaitez gérer également des nombres négatifs, vous pouvez simplement calculer x, puis vérifier que base ** x est égal à numéro xxx


0 commentaires

0
votes

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


0 commentaires

6
votes
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)

0 commentaires

1
votes

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


0 commentaires

0
votes
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

1 commentaires

Juste suivre les commentaires



0
votes
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)) 

0 commentaires

0
votes
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

0 commentaires