Maison  >  Article  >  développement back-end  >  Nombre maximum de bonbons pouvant être achetés

Nombre maximum de bonbons pouvant être achetés

王林
王林avant
2023-08-29 23:33:061171parcourir

Nombre maximum de bonbons pouvant être achetés

Nous obtenons un tableau candy[] avec la longueur stockée dans "size". Chaque élément de bonbons[i] a un numéro pour un bonbon de type i. Le but est d'acheter autant de bonbons que possible avec n'importe quelle somme d'argent. Les conditions sont les suivantes -

Si vous achetez X[i] de type i (0

  • X(j)

  • Entrée

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

Sortie

- Nombre maximum de bonbons pouvant être achetés - 16

Explication - Bonbons de type d'achat i { 0,3,5,2,6,0 }

>Entrée - Arr[] = { 5,7,7,3,4}.

Sortie - Bonbons maximum pouvant être achetés - 10

Explication - Achat de bonbons de type i { 0,0,7,3,0 }

Le programme suivant La méthode utilisée dans est la suivante

Le tableau d'entiers candy[] est utilisé pour stocker le nombre de bonbons de type i.

La variable 'size' stocke la longueur du tableau de bonbons.

  • La fonction maxCandies(int arr[], int n) est utilisée pour renvoyer le nombre total de bonbons pouvant être achetés.

  • Disons d’abord que nous avons acheté le dernier bonbon. buy=arr[n-1]

  • À partir de l'avant-dernier élément, for(i=n-2;i>=0;i--)

  • La variable x stocke les bonbons qui peuvent être achetés de la quantité de type actuelle. x=arr[i] ou buy-1, selon la valeur la plus petite.

  • Si x n'est pas zeo, ajoutez-le au total.

  • Si la somme est supérieure au montant de l'achat précédent, achat = x.

  • Retour aux résultats d'achat.

  • Exemple

  • Démo en direct
  • #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;
    }

    Output

  • Si nous exécutons le code ci-dessus, il générera la sortie suivante -
    Total Candies that can be bought: 13

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer