Rumah > Java > javaTutorial > teks badan

Cetak perwakilan binari integer dalam Java menggunakan rekursi

WBOY
Lepaskan: 2023-09-08 14:41:02
ke hadapan
998 orang telah melayarinya

Cetak perwakilan binari integer dalam Java menggunakan rekursi

Rekursi ialah teknik pengaturcaraan berkuasa yang berfungsi dengan memecahkan masalah kepada sub-masalah yang lebih kecil, lebih mudah dikendalikan dan menggunakan algoritma yang sama untuk menyelesaikannya. Dalam dunia pengaturcaraan Java, rekursi terbukti sebagai alat yang tidak ternilai untuk mencetak perwakilan binari integer. Persamaan binari, dinyatakan dalam sistem nombor asas-2 dengan hanya dua digit 0 dan 1, membentangkan cabaran biasa dalam bidang tersebut.

Dalam artikel ini, kami akan menerangkan tentang kerumitan mencetak persamaan binari integer menggunakan rekursi dalam Java. Penerokaan kami akan merangkumi pemeriksaan mendalam sintaks, algoritma dan dua kaedah berbeza yang boleh digunakan untuk menyelesaikan tugas ini. Pendekatan awal melibatkan penggunaan kaedah pembantu untuk menggabungkan dengan rentetan, manakala pendekatan kedua memerlukan penggunaan "StringBuilder" untuk penggabungan rentetan yang cekap. Dalam artikel ini, kami menyediakan contoh kod yang komprehensif bersama-sama dengan output untuk menggambarkan pelaksanaan dan penggunaan kaedah ini.

kaedah

  • Kaedah 1 - Kaedah tambahan dengan penggabungan rentetan

  • Kaedah 2 − StringBuilder untuk penyambungan rentetan

tatabahasa

public class BinaryPrinter {
   public static void printBinary(int n) {
      if (n > 0) {
         printBinary(n / 2);
         System.out.print(n % 2);
      }
   }

   public static void main(String[] args) {
      int num = 10; // Example input
      System.out.print("Binary equivalent of " + num + " is: ");
      printBinary(num);
   }
}
Salin selepas log masuk

Algoritma

Kerumitan mencetak setara binari integer menggunakan rekursi adalah seperti berikut -

  • Langkah 1 - Buat kaedah yang dipanggil "printBinary" yang menerima integer "n" sebagai input.

  • Langkah 2 - Dalam kaedah "printBinary", nilaikan sama ada "n" melebihi 0.

  • Langkah 3 − Jika 'n' lebih besar daripada 0, gunakan 'n' dibahagikan dengan 2 sebagai input dan panggil kaedah 'printBinary' secara rekursif.

  • Langkah 4 - Selepas panggilan rekursif, jana nombor binari pada kedudukan semasa dengan mencetak baki 'n' dibahagikan dengan 2.

  • Langkah 5 - Teruskan mengulangi langkah 3-4 sehingga 'n' mencapai 0, yang akan berfungsi sebagai kes asas untuk rekursi.

  • kaedah satu

    Dalam pendekatan inovatif ini, kami menggunakan kaedah pembantu yang dipanggil 'printBinaryHelper', yang mengandungi parameter tambahan bertanda 'binary', iaitu rentetan. Apabila kami memanggil kaedah 'printBinaryHelper' secara rekursif, kami bijak menggabungkan baki 'n' dibahagikan dengan 2 dengan rentetan 'binary' sedia ada, mewujudkan penyepaduan yang lancar. Sebaik sahaja nilai 'n' mencapai 0, kami dengan bangganya mencetak rentetan 'perduaan' terakhir, yang secara elegan melambangkan perwakilan binari bagi integer input.

    Berikut ialah kod program yang sama.

    Terjemahan bahasa Cina bagi

    Contoh-1

    ialah:

    Contoh-1

    public class BinaryPrinter {
       public static void printBinary(int n) {
          printBinaryHelper(n, "");
       }
    
       public static void printBinaryHelper(int n, String binary) {
          if (n > 0) {
             printBinaryHelper(n / 2, n % 2 + binary);
          } else {
             System.out.println("Binary equivalent: " + binary);
          }
       }
    
       public static void main(String[] args) {
          int num = 10; // Example input
          System.out.print("Binary equivalent of " + num + " is: ");
          printBinary(num);
       }
    }
    
    Salin selepas log masuk

    Output

    Binary equivalent of 10 is: Binary equivalent: 1010
    
    Salin selepas log masuk
    Salin selepas log masuk

    Kaedah 2

    Dalam pendekatan inovatif ini, kami menggunakan 'StringBuilder' untuk menjejak nombor binari kompleks dengan tepat sambil memanggil kaedah 'printBinary' secara rekursif. 'StringBuilder' terbukti sebagai alat penggabungan rentetan yang cekap tanpa perlu mencipta objek rentetan tambahan, dengan itu meningkatkan prestasi berbanding kaedah penggabungan rentetan tradisional. Selepas proses rekursif berjaya diselesaikan, 'StringBuilder' ditukar kepada perwakilan rentetan, menunjukkan persamaan binari bagi integer input, dalam paparan kehebatan teknikal yang menarik.

    Berikut ialah kod program yang sama.

    Terjemahan bahasa Cina bagi

    Contoh-2

    ialah:

    Contoh-2

    public class BinaryPrinter {
       public static void printBinary(int n) {
          System.out.print("Binary equivalent: ");
          StringBuilder binary = new StringBuilder();
          printBinaryHelper(n, binary);
          System.out.println(binary.toString());
       }
    
       public static void printBinaryHelper(int n, StringBuilder binary) {
          if (n > 0) {
             printBinaryHelper(n / 2, binary);
             binary.append(n % 2);
          }
       }
    
       public static void main(String[] args) {
          int num = 10; // Example input
          System.out.print("Binary equivalent of " + num + " is: ");
          printBinary(num);
       }
    }
    
    Salin selepas log masuk

    Output

    Binary equivalent of 10 is: Binary equivalent: 1010
    
    Salin selepas log masuk
    Salin selepas log masuk

    KESIMPULAN

    Recursion ialah teknik yang berkuasa dalam pengaturcaraan, menunjukkan kuasanya dalam menyelesaikan pelbagai tugas, termasuk mencetak perwakilan binari integer dalam Java. Dalam tutorial komprehensif ini, kami meneroka dua pendekatan berbeza untuk mencapai rekursi optimum menggunakan penggabungan rentetan dan `StringBuilder` yang berkuasa. Dengan pemahaman yang mendalam tentang sintaks, algoritma dan pelaksanaan mahir kaedah ini, anda kini boleh menggunakan kuasa rekursi untuk mencetak perwakilan binari integer dalam Java. Semasa anda memulakan perjalanan pengekodan ini, berhati-hati memilih pendekatan yang serasi dengan keperluan unik anda dan pertimbangkan kesan prestasi yang mungkin ada pada penggabungan rentetan dalam aplikasi anda. Berbekalkan cerapan ini, anda boleh menguasai seni rekursi dalam pengaturcaraan Java dan melancarkan potensi penuh teknik berkuasa ini dalam usaha pengekodan anda.

    Atas ialah kandungan terperinci Cetak perwakilan binari integer dalam Java menggunakan rekursi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan