Heim > Backend-Entwicklung > C++ > Geben Sie in einem C-Programm das Elementpaar mit dem größten UND-Wert in einem Array aus

Geben Sie in einem C-Programm das Elementpaar mit dem größten UND-Wert in einem Array aus

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-08-29 19:41:11
nach vorne
1199 Leute haben es durchsucht

Geben Sie in einem C-Programm das Elementpaar mit dem größten UND-Wert in einem Array aus

Der Frage zufolge erhalten wir ein Array mit n positiven ganzen Zahlen und müssen das Paar mit dem maximalen UND-Wert aus dem Array finden.

Beispiel

Input: arr[] = { 4, 8, 12, 16 }
Output: pair = 8 12
The maximum and value= 8

Input:arr[] = { 4, 8, 16, 2 }
Output: pair = No possible AND
The maximum and value = 0
Nach dem Login kopieren

Die Methode zum Ermitteln des maximalen UND-Werts ähnelt dem Ermitteln des maximalen UND-Werts in einem Array. Das Programm muss das Elementpaar finden, das den resultierenden UND-Wert ergibt. Um diese Elemente zu finden, durchlaufen Sie einfach das gesamte Array und ermitteln Sie den UND-Wert jedes Elements mit dem maximalen UND-Wert (Ergebnis), den Sie erhalten. Wenn arr[i] & Ergebnis == Ergebnis, bedeutet dies, dass arr[i] ist der maximale UND-Wert, der generiert wird. Elemente von UND-Werten. Darüber hinaus sollten wir „unmöglich“ ausgeben, wenn der maximale UND-Wert (Ergebnis) Null ist. Die Übersetzung von „Algorithmus“ lautet „

int checkBit(int pattern, int arr[], int n)
START
STEP 1: DECLARE AND INITIALIZE count AS 0
STEP 2: LOOP FOR i = 0 AND i < n AND i++
   IF (pattern & arr[i]) == pattern THEN,
      INCREMENT count BY 1
STEP 3: RETURN count
STOP
int maxAND(int arr[], int n)
START
STEP 1: DECLARE AND INITIALIZE res = 0 AND count
STEP 2: LOOP FOR bit = 31 AND bit >= 0 AND bit--
   count = GOTO FUNCTION checkBit(res | (1 << bit), arr,n)
   IF count >= 2 THEN,
      res |= (1 << bit);
   END IF
   IF res == 0
      PRINT "no possible AND&rdquo;
   ELSE
      PRINT "Pair with maximum AND= "
   count = 0;
   LOOP FOR int i = 0 AND i < n && count < 2 AND i++
      IF (arr[i] & res) == res THEN,
         INCREMENT count BY 1
         PRINT arr[i]
      END IF
   END FOR
END FOR
RETURN res
STOP
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGeben Sie in einem C-Programm das Elementpaar mit dem größten UND-Wert in einem Array aus. 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