Dalam C++, terjemah yang berikut ke dalam bahasa Cina: Kira bilangan minimum lilitan bit supaya hasil XOR A dan B adalah sama dengan C

王林
Lepaskan: 2023-08-27 11:57:08
ke hadapan
644 orang telah melayarinya

Dalam C++, terjemah yang berikut ke dalam bahasa Cina: Kira bilangan minimum lilitan bit supaya hasil XOR A dan B adalah sama dengan C

Diberi tiga jujukan binari A, B dan C panjang N. Setiap urutan mewakili a Nombor binari. Kita kena cari no. Bilangan lilitan yang diperlukan bagi bit dalam A dan B supaya XOR A dan B memberikan C. A XOR B menjadi C.

Mula-mula marilah kita memahami jadual kebenaran operasi XOR -

01 XYX 01110
X Y X
1 1
Daripada jadual di atas kita perhatikan bahawa untuk nilai yang sama dalam X dan Y, X Hasilnya ialah 0, sebaliknya Keputusan 1. Jadi ini akan membantu untuk mencari bit yang terbalik dalam A dan B untuk mencapai C. Situasinya ialah

    jika A[i]==B[i] dan C[i]==0, tiada flipping diperlukan,
  • jika A[i]==B[i] dan C[i] = =1, kemudian flip A[i] atau B[i] dan tingkatkan kiraan flip sebanyak 1
  • Jika A[i]!=B[i] dan C[i]==0, flip A[i] atau B [i] dan tambahkan kiraan flip sebanyak 1
  • Jika A[i]!=B[i] dan C[i]==1, tiada flipping diperlukan. Input
  • A[]= { 0,0,0,0 } B[]= { 1,0,1,0 } C= {1,1,1,1}
    Salin selepas log masuk
    reee
  • Dalam program berikut Kaedah yang digunakan adalah seperti berikut

Tatasusunan a[], b[] dan c[] digunakan untuk menyimpan nombor binari.

Fungsi FlipCount(int A[], int B[], int C[], int n) mengambil tatasusunan a, b, c dan panjangnya n sebagai Masukkan dan kembalikan bilangan lilitan yang diperlukan pada bit A[] atau B[] supaya C[] sama dengan A XOR B B

Kiraan pembolehubah mewakili kiraan flip dan dimulakan kepada 0.

Gunakan gelung for untuk melelakan setiap bit dalam sel bermula dari i = 0 hingga i

    untuk setiap bit A[i] dan B[i]. Jika mereka sama dan C[i] ialah 1, tambahkan kiraan.
  • < /p>

  • Untuk setiap bit A[i] dan B[i]. Jika mereka tidak sama dan C[i] ialah 0, tambahkan kiraan.
  • Mengembalikan kiraan hasil yang diingini.
  • Contoh
  • Demonstrasi Langsung

    Required flips : 2
    Salin selepas log masuk
  • Output
  • A[0] xor B[0] 0 xor 1 = 1 C[0]=1 no flip
    A[1] xor B[1] 0 xor 0 = 0 C[0]=1 flip count=1
    A[2] xor B[2] 0 xor 1 = 1 C[0]=1 no flip
    A[3] xor B[3] 0 xor 0 = 0 C[0]=1flip count=2
    Salin selepas log masuk

Atas ialah kandungan terperinci Dalam C++, terjemah yang berikut ke dalam bahasa Cina: Kira bilangan minimum lilitan bit supaya hasil XOR A dan B adalah sama dengan C. 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