Heim  >  Artikel  >  Backend-Entwicklung  >  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

WBOY
WBOYnach vorne
2023-08-29 19:41:111101Durchsuche

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

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

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!

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