"size"에 길이가 저장된 Candy[] 배열을 얻습니다. candies[i]의 각 요소에는 i 유형의 캔디에 대한 번호가 있습니다. 목표는 금액에 관계없이 가능한 한 많은 사탕을 구입하는 것입니다. 조건은 다음과 같습니다. -
i 유형(0
X(j)
- Arr[] = { 1,3,5,2,6,7}.
- 구매할 수 있는 최대 캔디 - 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 유형의 캔디 수를 저장하는 데 사용됩니다.
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
#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 중국어 웹사이트의 기타 관련 기사를 참조하세요!