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)
- Arr[] = { 1,3,5,2,6,7}.
– 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 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
#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
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!