L1과 L2라는 두 개의 사물함이 있고 그 안에 동전이 들어있습니다. L1에는 A 코인이 있고 L2에는 B 코인이 있습니다. 인출 금액을 최대화하려면 사물함에서 동전을 제거해야 합니다. 보관함에서 동전을 꺼낼 때마다 이전 금액에서 1코인을 뺀 금액으로 교체됩니다. L1에서 A 코인을 가져오면 A-1 코인으로 대체되고, L2에서 B 코인을 가져오면 B-1 코인으로 대체됩니다. 임무는 두 단계를 거쳐 인출 금액을 최대화하는 것입니다. 이는 코인을 두 번만 인출할 수 있음을 의미합니다.
Input - L1 - 10, L2 - 11
Output - 두 단계로 꺼낼 수 있는 최대량 - 21
설명 - 첫 번째 단계에서는 L2 코인에서 11개를 꺼냅니다. L2는 11-1=10코인으로 대체됩니다.
두 번째 단계에서는 L1과 L2 모두 10개의 코인이 있으므로 어느 쪽에서든 가져올 수 있으며 최대 11+10=21개의 코인이 있습니다.
Input - L1-5, L2-5
Output - 2단계로 출금할 수 있는 최대 금액 - 10
설명 - 첫 번째 단계에서는 L1 코인에서 5개, L1에서 출금합니다. 5-1=4 코인으로 대체됩니다.
두 번째 단계에서는 L1에는 4개의 코인이 있고 L2에는 5개의 코인이 있으므로 L2에서 5개의 코인을 가져와 5+5=10개의 코인이 최대치입니다.
두 개의 정수 보관함 L1과 L2가 있으며 여기에는 동전이 들어 있습니다.
maxMoney(int A, int B) 함수는 보관함에 있는 동전 수를 입력으로 받습니다.
maxMoney() 함수에서는 'money' 변수를 사용하여 최대 금액을 저장합니다.
처음에 돈의 가치는 A나 B 중 큰 것에서 나옵니다. (money=A>B?A:B)
돈의 가치를 A 또는 B와 비교하여 어떤 용기의 동전이 제거되었는지 확인하세요.
이제 용기를 이전 금액에서 1코인을 뺀 금액으로 교체하세요. (A-- 또는 B--)
A 또는 B 중 더 큰 값에 다시 돈의 가치를 더합니다. (money+=A>B?A:B)
k가 작으면 가장 작은 k 요소의 합이 가장 작습니다. -Storage abs((전체 배열의 합) - (가장 작은 k 요소의 합) ) in D1 합계의 두 배)) 배열 합계에도 이러한 요소가 포함되어 있기 때문입니다.
k가 더 크면 가장 큰 k 요소의 합이 가장 큽니다. -
ABS를 D2에 저장합니다((전체 배열의 합) - (가장 큰 k 요소의 합의 2배)가 2배이기 때문입니다. 배열 sum에도 이러한 요소가 포함되어 있습니다.
D1과 D2를 비교하여 최대값을 maxD에 저장합니다.
결과로 maxD를 반환합니다.
Live Demo
Code: #include <stdio.h> #include <math.h> // Function to return the maximum coins we can get int maxMoney(int A, int B){ //take coins int money=A>B?A:B; //refill the lockers with 1 less no.of coins if(money==A) A--; else B--; //withdraw again money+=A>B?A:B; return money; } // Driver code int main(){ int L1 = 8, L2 = 9; printf("Maximum money that can be withdrawn in two steps: %d" , maxMoney(L1, L2)); return 0; }
위 코드를 실행하면 다음과 같은 출력이 생성됩니다. −
Maximum money that can be withdrawn in two steps: 17
위 내용은 C에서는 2단계로 인출할 수 있는 최대 금액의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!