Heim >Backend-Entwicklung >C++ >Übersetzen Sie in C++ Folgendes ins Chinesische: Berechnen Sie die minimale Anzahl von Bitwechseln, sodass das XOR-Ergebnis von A und B gleich C ist

Übersetzen Sie in C++ Folgendes ins Chinesische: Berechnen Sie die minimale Anzahl von Bitwechseln, sodass das XOR-Ergebnis von A und B gleich C ist

王林
王林nach vorne
2023-08-27 11:57:08709Durchsuche

Übersetzen Sie in C++ Folgendes ins Chinesische: Berechnen Sie die minimale Anzahl von Bitwechseln, sodass das XOR-Ergebnis von A und B gleich C ist

Gegeben seien drei binäre Folgen A, B und C der Länge N. Jede Sequenz repräsentiert a Binärzahl. Wir müssen nein herausfinden. Die Anzahl der erforderlichen Flips der Bits in A und B, sodass das XOR von A und B C ergibt. Ein XOR B wird zu C.

Lassen Sie uns zunächst die Wahrheitstabelle der XOR-Operation verstehen –

1 Aus der obigen Tabelle sehen wir, dass für die gleichen Werte in X und Y das Ergebnis von X 0 ist, andernfalls Ergebnis 1. Dies wird also helfen, die Bits zu finden, die in A und B umdrehen, um C zu erreichen. Die Situation wird sein: Wenn A[i]!=B[i] und C[i]==0, drehe A[i] oder um B [i] und erhöhen Sie die Anzahl der Umdrehungen um 1
A[]= { 0,0,0,0 } B[]= { 1,0,1,0 } C= {1,1,1,1}
Required flips : 2
Erklärung
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
Im folgenden Programm Die Methode verwendet wird wie folgt Arrays a[], b[] und c[] werden zum Speichern von Binärzahlen verwendet. Funktion FlipCount(int A[], int B[], int C[], int n) übernimmt die Arrays a, b, c und ihre Länge n als Geben Sie die Anzahl der erforderlichen Flips für die Bits von A[] oder B[] ein und geben Sie sie zurück, sodass C[] gleich A XOR B ist B
X Y 1
1 0
wenn A[i]==B[i] und C[i]==0, ist kein Umdrehen erforderlich, wenn A[i]==B[i] und C[i] = =1, dann drehe A[i] oder B[i] um und erhöhe die Anzahl der Drehungen um 1
Wenn A[i]!=B[i] und C[i]==1, ist keine Umdrehung erforderlich. Die chinesische Übersetzung von „InputOutputExplanation“ lautet: „Explanation“

    Die Variable count stellt die Flip-Zählung dar und wird auf 0 initialisiert.
  • Verwenden Sie eine for-Schleife, um jedes Bit in der Zelle von i = 0 bis i
  • für jedes Bit A[i] und B[i] zu durchlaufen. Wenn sie gleich sind und C[i] 1 ist, erhöhen Sie die Anzahl.

Für jedes Bit A[i] und B[i]. Wenn sie nicht gleich sind und C[i] 0 ist, erhöhen Sie den Zähler.

Gibt die Anzahl der gewünschten Ergebnisse zurück.

Beispiel

Live-Demonstration

A[]= { 0,0,1,1 } B[]= { 0,0,1,1 } C= {0,0,1,1}

Ausgabe

Required flips : 2

Das obige ist der detaillierte Inhalt vonÜbersetzen Sie in C++ Folgendes ins Chinesische: Berechnen Sie die minimale Anzahl von Bitwechseln, sodass das XOR-Ergebnis von A und B gleich C ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen