Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bilangan maksimum gula-gula yang boleh dibeli

Bilangan maksimum gula-gula yang boleh dibeli

王林
王林ke hadapan
2023-08-29 23:33:061217semak imbas

Bilangan maksimum gula-gula yang boleh dibeli

Kami mendapat susunan gula-gula[] dengan panjang disimpan dalam "saiz". Setiap unsur gula-gula[i] mempunyai nombor untuk gula-gula jenis i. Matlamatnya adalah untuk membeli sebanyak mungkin gula-gula dengan sebarang jumlah wang. Syaratnya adalah seperti berikut -

Jika anda membeli X[i] jenis i (0

  • X(j)

  • Input

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

Output

- Maksimum gula-gula yang boleh dibeli - 16

Penjelasan - Gula-gula jenis pembelian i { 0,3,5,2,6,0 }

>Input[] = { - Arr 5,7,7,3,4}.

Output - Gula-gula maksimum yang boleh dibeli - 10

Penjelasan - Pembelian gula-gula jenis i { 0,0,7,3,0 }

Program berikut Kaedah yang digunakan dalam adalah seperti berikut

gula-gula tatasusunan integer[] digunakan untuk menyimpan bilangan gula-gula jenis i.

Pembolehubah 'saiz' menyimpan panjang susunan gula-gula.

  • Fungsi maxCandies(int arr[], int n) digunakan untuk mengembalikan jumlah bilangan gula-gula yang boleh dibeli.

  • Mula-mula katakan kita membeli gula-gula terakhir. buy=arr[n-1]

  • Bermula dari unsur terakhir, untuk(i=n-2;i>=0;i--)

  • Pembolehubah x menyimpan gula-gula yang boleh dibeli kuantiti jenis semasa. x=arr[i] atau beli-1, yang mana lebih kecil.

  • Jika x bukan zeo, tambahkan kepada jumlah.

  • Jika jumlah lebih besar daripada jumlah pembelian sebelumnya, pembelian = x.

  • Kembali ke hasil pembelian.

  • Contoh

    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;
    }
  • Output

    Jika kita menjalankan kod di atas ia akan menghasilkan output berikut -
  • Total Candies that can be bought: 13

    Atas ialah kandungan terperinci Bilangan maksimum gula-gula yang boleh dibeli. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam