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

王林
Freigeben: 2023-08-27 11:57:08
nach vorne
661 Leute haben es durchsucht

Ü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}
Nach dem Login kopieren
Required flips : 2
Nach dem Login kopieren
Nach dem Login kopieren
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
Nach dem Login kopieren
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}
Nach dem Login kopieren

Ausgabe

Required flips : 2
Nach dem Login kopieren
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage