Maison > Java > Comment écrire une fonction en Java pour vérifier si un nombre est une puissance d'un autre nombre ?

Comment écrire une fonction en Java pour vérifier si un nombre est une puissance d'un autre nombre ?

王林
Libérer: 2024-02-22 13:20:14
avant
894 Les gens l'ont consulté

L'éditeur PHP Youzi vous apporte des réponses aux questions de programmation Java : Comment écrire une fonction en Java pour vérifier si un nombre est la puissance d'un autre nombre ? L'écriture d'une telle fonction vous aidera à déterminer rapidement et avec précision la relation multiple entre les nombres dans un programme Java, ce qui facilitera votre travail de programmation. Dans cet article, nous explorerons comment écrire une telle fonction en utilisant le langage Java et donnerons une implémentation détaillée du code et des exemples. Regardons de plus près!

Contenu de la question

J'ai écrit une fonction booléenne qui vérifie la puissance d'un entier m 是否是 n. Mais mon code est incorrect. Par exemple, 625 est une puissance de 5. Mais mon code renvoie false.

public static boolean isPower(int m, int n) {
  if (m <= n) {
    return false;
  }
  int pow = n;
  while (pow <= m) {
    pow = n * pow;
    if (pow == m) {
      return true;
    }
    pow++;
  }
  return false;
}
Copier après la connexion

Solution

  • Un bug dans votre solution a été signalé dans les commentaires.
  • Votre code ne gère pas bien le cas m = 1 non plus.
  • Pour la plupart des entrées, la méthode suivante peut réduire le nombre d'itérations :
// for n, m > 0
static boolean isPower(int m, int n) {
    while (m % n == 0) {
        m /= n;
    }
    
    return (m == 1);
}
Copier après la connexion

Ici, je divise à plusieurs reprises m par n jusqu'à ce que je rencontre un reste non nul. Pour les puissances exactes de n je me retrouve avec m 除以 n,直到遇到非零余数。对于 n 的精确幂,我最终会得到 m = 1.

Utilisez cette méthode pour toutes les possibilités m 值的 (n - 1)/n 在第一次迭代时都会被拒绝,因为 n 连续数字中只有一个数字具有 m % n == 0.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal