Heim > Backend-Entwicklung > C++ > In C der maximale Betrag, der in zwei Schritten abgehoben werden kann

In C der maximale Betrag, der in zwei Schritten abgehoben werden kann

WBOY
Freigeben: 2023-09-22 08:05:17
nach vorne
1400 Leute haben es durchsucht

In C der maximale Betrag, der in zwei Schritten abgehoben werden kann

Wir haben zwei Schließfächer namens L1 und L2, in denen sich einige Münzen befinden. L1 hat A-Münzen und L2 hat B-Münzen. Wir müssen Münzen aus dem Schließfach entfernen, um den entnommenen Betrag zu maximieren. Jedes Mal, wenn eine Münze aus einem Schließfach entnommen wird, wird sie durch den vorherigen Betrag minus 1 Münze ersetzt. Wenn wir A-Münzen von L1 nehmen, werden sie durch A-1-Münzen ersetzt, und wenn wir B-Münzen von L2 nehmen, werden sie durch B-1-Münzen ersetzt. Die Aufgabe besteht darin, den abgehobenen Betrag in zwei Schritten zu maximieren. Das bedeutet, dass die Münze nur zweimal abgehoben werden kann.

Eingabe - L1 - 10, L2 - 11

Ausgabe - Maximaler Betrag, der in zwei Schritten entnommen werden kann - 21

Erklärung - Im ersten Schritt entnehmen wir 11 aus L2-Münzen, L2 wird durch 11-1=10 Münzen ersetzt.

Im zweiten Schritt haben sowohl L1 als auch L2 10 Münzen, es kann also von beiden genommen werden, wir haben 11+10=21 Münzen, was das Maximum ist.

Eingabe - L1-5, L2-5

Ausgabe - Der maximale Betrag, der in zwei Schritten abgehoben werden kann - 10

Erklärung - Im ersten Schritt ziehen wir 5 von L1-Münzen ab, L1 wird durch 5-1=4 Münzen ersetzt.

Im zweiten Schritt hat L1 4 Münzen und L2 hat 5 Münzen, also nehmen wir 5 Münzen von L2 und haben 5+5=10 Münzen, was das Maximum ist.

Die vom folgenden Programm verwendete Methode ist wie folgt:

  • Wir haben zwei ganzzahlige Schließfächer L1 und L2, die einige Münzen enthalten.

  • Die Funktion maxMoney(int A, int B) verwendet die Anzahl der Münzen im Schließfach als Eingabe.

  • In der Funktion maxMoney() verwenden wir die Variable „money“, um den Maximalbetrag zu speichern.

  • Zunächst ergibt sich der Wert des Geldes aus dem größeren Wert von A oder B. (Geld=A>B?A:B)

  • Vergleichen Sie den Geldwert mit A oder B, um festzustellen, aus welchem ​​Behälter die Münze entfernt wurde.

  • Ersetzen Sie nun den Behälter durch den vorherigen Betrag minus 1 Münze. (A-- oder B--)

  • Addieren Sie den Geldwert erneut zum größeren Wert von A oder B. (Geld+=A>B?A:B)

    Wenn k klein ist, ist die Summe der kleinsten k Elemente die kleinste -
  • Speicher abs((Summe des gesamten Arrays) - (die Summe der kleinsten k Elemente ) in D1 Zweimal die Summe )). Zweimal, weil die Array-Summe auch diese Elemente enthält.

    Wenn k größer ist, ist die Summe der größten k Elemente die größte –

  • Speichern Sie abs in D2 ((Summe des gesamten Arrays) – (doppelt die Summe der größten k Elemente) ist Twice die Array-Summe enthält auch diese Elemente.

  • Vergleichen Sie D1 mit D2 und speichern Sie den Maximalwert in maxD.

  • MaxD als Ergebnis zurückgeben.

Beispiel

Live-Demo

Code:
#include <stdio.h>
#include <math.h>
// Function to return the maximum coins we can get
int maxMoney(int A, int B){
   //take coins
   int money=A>B?A:B;
   //refill the lockers with 1 less no.of coins
   if(money==A)
      A--;
   else
      B--;
   //withdraw again
   money+=A>B?A:B;
   return money;
}
// Driver code
int main(){
   int L1 = 8, L2 = 9;
   printf("Maximum money that can be withdrawn in two steps: %d" , maxMoney(L1, L2));
   return 0;
}
Nach dem Login kopieren

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert: -

Maximum money that can be withdrawn in two steps: 17
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonIn C der maximale Betrag, der in zwei Schritten abgehoben werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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