Heim > Java > Hauptteil

Wie schreibe ich eine Funktion in Java, um zu prüfen, ob eine Zahl eine Potenz einer anderen Zahl ist?

王林
Freigeben: 2024-02-22 13:20:14
nach vorne
866 Leute haben es durchsucht

Der PHP-Editor Youzi bietet Ihnen Antworten auf Fragen zur Java-Programmierung: Wie schreibe ich eine Funktion in Java, um zu prüfen, ob eine Zahl die Potenz einer anderen Zahl ist? Durch das Schreiben einer solchen Funktion können Sie die Mehrfachbeziehung zwischen Zahlen in einem Java-Programm schnell und genau bestimmen, was Ihre Programmierarbeit erleichtert. In diesem Artikel untersuchen wir, wie eine solche Funktion in der Java-Sprache geschrieben wird, und geben detaillierte Codeimplementierungen und Beispiele. Lass uns genauer hinschauen!

Frageninhalt

Ich habe eine boolesche Funktion geschrieben, die die Potenz einer Ganzzahl prüft m 是否是 n. Aber mein Code ist falsch. Beispielsweise ist 625 eine Potenz von 5. Aber mein Code gibt false zurück.

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;
}
Nach dem Login kopieren

Lösung

  • In den Kommentaren wurde auf einen Fehler in Ihrer Lösung hingewiesen.
  • Ihr Code kommt mit dem m = 1-Fall auch nicht gut zurecht.
  • Bei den meisten Eingaben kann die folgende Methode die Anzahl der Iterationen reduzieren:
// for n, m > 0
static boolean isPower(int m, int n) {
    while (m % n == 0) {
        m /= n;
    }
    
    return (m == 1);
}
Nach dem Login kopieren

Hier dividiere ich wiederholt m durch n, bis ich auf einen Rest ungleich Null stoße. Für genaue Potenzen von n erhalte ich am Ende m 除以 n,直到遇到非零余数。对于 n 的精确幂,我最终会得到 m = 1.

Verwenden Sie diese Methode für alle Möglichkeiten m 值的 (n - 1)/n 在第一次迭代时都会被拒绝,因为 n 连续数字中只有一个数字具有 m % n == 0.

Das obige ist der detaillierte Inhalt vonWie schreibe ich eine Funktion in Java, um zu prüfen, ob eine Zahl eine Potenz einer anderen Zahl ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage