>Java >숫자가 다른 숫자의 거듭제곱인지 확인하기 위해 Java에서 함수를 작성하는 방법은 무엇입니까?

숫자가 다른 숫자의 거듭제곱인지 확인하기 위해 Java에서 함수를 작성하는 방법은 무엇입니까?

王林
王林앞으로
2024-02-22 13:20:14874검색

PHP 편집자 Youzi는 Java 프로그래밍 질문에 대한 답변을 제공합니다. Java에서 숫자가 다른 숫자의 거듭제곱인지 확인하는 함수를 작성하는 방법은 무엇입니까? 이러한 함수를 작성하면 Java 프로그램에서 숫자 간의 다중 관계를 빠르고 정확하게 결정하는 데 도움이 되며 프로그래밍 작업이 쉬워집니다. 이 기사에서는 Java 언어를 사용하여 이러한 함수를 작성하는 방법을 살펴보고 자세한 코드 구현 및 예제를 제공합니다. 좀 더 자세히 살펴보겠습니다!

질문 내용

정수의 거듭제곱을 확인하는 부울 함수m 是否是 n를 작성했습니다. 하지만 내 코드가 올바르지 않습니다. 예를 들어 625는 5의 거듭제곱입니다. 하지만 내 코드는 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;
}

솔루션

  • 귀하의 솔루션에 있는 버그가 댓글에서 지적되었습니다.
  • 귀하의 코드도 m = 1 사례를 잘 처리하지 못합니다.
  • 대부분의 입력에서 다음 방법을 사용하면 반복 횟수를 줄일 수 있습니다.
으아악

여기서는 0이 아닌 나머지가 나올 때까지 mn으로 반복해서 나눕니다. n의 정확한 거듭제곱은 m 除以 n,直到遇到非零余数。对于 n 的精确幂,我最终会得到 m = 1로 끝납니다.

모든 가능성에 이 방법을 사용하세요 m 值的 (n - 1)/n 在第一次迭代时都会被拒绝,因为 n 连续数字中只有一个数字具有 m % n == 0.

위 내용은 숫자가 다른 숫자의 거듭제곱인지 확인하기 위해 Java에서 함수를 작성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제