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 ?

王林
王林avant
2024-02-22 13:20:14870parcourir

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;
}

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);
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer