Heim  >  Artikel  >  Backend-Entwicklung  >  Maximale Anzahl an Süßigkeiten, die gekauft werden können

Maximale Anzahl an Süßigkeiten, die gekauft werden können

王林
王林nach vorne
2023-08-29 23:33:061217Durchsuche

Maximale Anzahl an Süßigkeiten, die gekauft werden können

Wir erhalten ein Candy[]-Array, dessen Länge in „size“ gespeichert ist. Jedes Element candies[i] hat eine Nummer für ein Bonbon vom Typ i. Ziel ist es, mit einem beliebigen Geldbetrag so viele Süßigkeiten wie möglich zu kaufen. Die Bedingungen sind wie folgt:

Wenn Sie X[i] vom Typ i (0

  • X(j)

  • Eingabe

    - Arr[] = { 1,3,5,2,6,7}.

Ausgabe

– Maximale Bonbons, die gekauft werden können – 16

Erklärung – Bonbons des Kauftyps i { 0,3,5,2,6,0 }

>Eingabe – Arr[] = { 5,7,7,3,4}.

Ausgabe – Maximale Süßigkeit, die gekauft werden kann – 10

Erklärung – Kauf von Süßigkeit vom Typ i { 0,0,7,3,0 }

Das folgende Programm verwendet folgende Methode:

Das ganzzahlige Array „bonbon[]“ wird zum Speichern der Anzahl der Bonbons vom Typ i verwendet.

Die Variable „size“ speichert die Länge der Array-Bonbons.

  • Die Funktion maxCandies(int arr[], int n) wird verwendet, um die Gesamtzahl der Süßigkeiten zurückzugeben, die gekauft werden können.

  • Nehmen wir zunächst an, wir haben die letzten Süßigkeiten gekauft. buy=arr[n-1]

  • Beginnend mit dem vorletzten Element, for(i=n-2;i>=0;i--)

  • Die Variable x speichert die Süßigkeiten, die gekauft werden können die aktuelle Typenmenge. x=arr[i] oder buy-1, je nachdem, welcher Wert kleiner ist.

  • Wenn x nicht Zeo ist, addiere es zur Gesamtsumme.

  • Wenn die Summe größer ist als der vorherige Kaufbetrag, Kauf = x.

  • Zurück zu den Kaufergebnissen.

  • Beispiel

  • Live-Demo
  • #include <stdio.h>
    int maxCandies(int arr[], int n){
       int bought = arr[n - 1];
       int total = bought;
       // Starting from second last
       for (int i = n - 2; i >= 0; i--) {
          // Amount of candies of the current
          // type that can be bought
          int x = arr[i]<bought-1?arr[i]:bought-1;
          if (x >= 0) {
             total += x;
             bought = x;
          }
       }
       return total;
    }
    int main(){
       int candies[] = { 1,2,4,3,7 };
       int size = 5;
       printf("Total Candies that can be bought: %d", maxCandies(candies, size));
       return 0;
    }

    Ausgabe

  • Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert:
    Total Candies that can be bought: 13

    Das obige ist der detaillierte Inhalt vonMaximale Anzahl an Süßigkeiten, die gekauft werden können. 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