Dalam C++, keluarkan satu bit nombor binari untuk mendapatkan nilai maksimum

PHPz
Lepaskan: 2023-09-17 15:53:08
ke hadapan
1136 orang telah melayarinya

Dalam C++, keluarkan satu bit nombor binari untuk mendapatkan nilai maksimum

Bincangkan masalah yang diberi nombor binari. Kita perlu mengeluarkan sedikit daripadanya supaya bilangan yang selebihnya hendaklah maksimum di antara semua pilihan lain seperti

Input : N = 1011
Output: 111
Explanation: We need to remove one bit so removing 0 bit will give a maximum number than removing any 1’s bit. 111 > 101, 011.

Input: 111
Output: 11
Explanation: Since all the bits are 1 so we can remove any bit.
Salin selepas log masuk

Kaedah penyelesaian

Kaedah brute force

Kaedah brute force akan memberikan bilangan keputusan maksimum iaitu dengan sedikit demi sedikit Alih keluar, bandingkan hasil yang berbeza dan dapatkan hasil yang maksimum.

Tetapi ia boleh dilakukan menggunakan pendekatan efisyen, iaitu jika kita mengeluarkan bit berlebihan yang minimum.

Kaedah yang cekap

Kaedah yang cekap memberi impak yang minimum terhadap hasilnya.

  • Mula-mula, mulakan dari kanan dan lalui bahagian-bahagiannya.

  • Cari 0 dan keluarkannya di kaunter pertama.

  • Jika 0 tidak ditemui, keluarkan sebarang bit. .

Mulakan susunan aksara untuk menyimpan nombor hasil.

Gelung akan berjalan ke n-1 kerana kita perlu menyimpan kurang satu elemen daripada nombor asal.

Gelung akan berjalan ke n-1. p>

  • Kesimpulan

    Dalam tutorial ini, kami membincangkan tentang mencari nombor maksimum selepas mengeluarkan satu digit. Kami membincangkan dua cara untuk menyelesaikan masalah ini.
  • Kami juga telah menulis kod C++ untuk ini dan kami boleh menulis kod ini dalam mana-mana bahasa lain seperti C, Java, Python dll. Kami harap anda mendapati tutorial ini membantu.

Atas ialah kandungan terperinci Dalam C++, keluarkan satu bit nombor binari untuk mendapatkan nilai maksimum. 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