>  기사  >  백엔드 개발  >  구매할 수 있는 최대 사탕 수

구매할 수 있는 최대 사탕 수

王林
王林앞으로
2023-08-29 23:33:061227검색

구매할 수 있는 최대 사탕 수

"size"에 길이가 저장된 Candy[] 배열을 얻습니다. candies[i]의 각 요소에는 i 유형의 캔디에 대한 번호가 있습니다. 목표는 금액에 관계없이 가능한 한 많은 사탕을 구입하는 것입니다. 조건은 다음과 같습니다. -

i 유형(0

  • X(j)

  • 입력

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

Output

- 구매할 수 있는 최대 캔디 - 16

Explanation - 구매 유형 i의 캔디 { 0,3,5,2,6,0 }

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

Output - 구매할 수 있는 최대 캔디 - 10

설명 - i 유형의 캔디 구매 { 0,0,7,3,0 }

다음 프로그램에서 사용된 메소드는 다음과 같습니다.

정수 배열 Candy[]는 i 유형의 캔디 수를 저장하는 데 사용됩니다.

변수 'size'는 배열된 사탕의 길이를 저장합니다.

  • maxCandies(int arr[], int n) 함수는 구매할 수 있는 총 사탕 수를 반환하는 데 사용됩니다.

  • 먼저 마지막 사탕을 샀다고 합시다. buy=arr[n-1]

  • 끝에서 두 번째 요소부터 시작하여 for(i=n-2;i>=0;i--)

  • 변수 x는 구매할 수 있는 사탕을 저장합니다. 현재 유형 수량. x=arr[i] 또는 buy-1 중 작은 쪽.

  • x가 zeo가 아니면 합계에 추가하세요.

  • 합계가 이전 구매 금액보다 큰 경우 구매 = x.

  • 구매 결과로 돌아갑니다.

  • Example

  • 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

  • 위 코드를 실행하면 다음 출력이 생성됩니다. -
    Total Candies that can be bought: 13

    위 내용은 구매할 수 있는 최대 사탕 수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제