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