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

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

王林
王林nach vorne
2024-02-22 13:20:14844Durchsuche

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen