Rumah >Java >Bagaimana untuk menulis fungsi dalam Java untuk memeriksa sama ada nombor adalah kuasa nombor lain?

Bagaimana untuk menulis fungsi dalam Java untuk memeriksa sama ada nombor adalah kuasa nombor lain?

王林
王林ke hadapan
2024-02-22 13:20:14870semak imbas

Editor PHP Youzi membawakan anda jawapan kepada soalan pengaturcaraan Java: Bagaimana untuk menulis fungsi dalam Java untuk menyemak sama ada nombor adalah kuasa nombor lain? Menulis fungsi sedemikian akan membantu anda dengan cepat dan tepat menentukan hubungan berbilang antara nombor dalam program Java, yang akan memudahkan kerja pengaturcaraan anda. Dalam artikel ini, kami akan meneroka cara menulis fungsi sedemikian menggunakan bahasa Java dan memberikan pelaksanaan dan contoh kod terperinci. Mari lihat lebih dekat!

Kandungan soalan

Saya menulis fungsi boolean yang menyemak kuasa integer m 是否是 n. Tetapi kod saya tidak betul. Sebagai contoh, 625 ialah kuasa 5. Tetapi kod saya kembali palsu.

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

Penyelesaian

  • Pepijat dalam penyelesaian anda ditunjukkan dalam ulasan.
  • Kod anda juga tidak mengendalikan m = 1 kes dengan baik.
  • Untuk kebanyakan input, kaedah berikut boleh mengurangkan bilangan lelaran:
// for n, m > 0
static boolean isPower(int m, int n) {
    while (m % n == 0) {
        m /= n;
    }
    
    return (m == 1);
}

Di sini saya berulang kali membahagikan m dengan n sehingga saya menemui baki bukan sifar. Untuk kuasa tepat n saya berakhir dengan m 除以 n,直到遇到非零余数。对于 n 的精确幂,我最终会得到 m = 1.

Gunakan kaedah ini untuk semua kemungkinan m 值的 (n - 1)/n 在第一次迭代时都会被拒绝,因为 n 连续数字中只有一个数字具有 m % n == 0.

Atas ialah kandungan terperinci Bagaimana untuk menulis fungsi dalam Java untuk memeriksa sama ada nombor adalah kuasa nombor lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam