ホームページ  >  記事  >  バックエンド開発  >  Cでは、2段階で引き出すことができる最大金額

Cでは、2段階で引き出すことができる最大金額

WBOY
WBOY転載
2023-09-22 08:05:171344ブラウズ

Cでは、2段階で引き出すことができる最大金額

# L1 と L2 という 2 つのロッカーがあり、いくつかのコインが入っています。 L1 には A コインがあり、L2 には B コインがあります。引き出し金額を最大化するには、ロッカーからコインを取り出さなければなりません。各ロッカーからコインが取り出されるたびに、前の金額から1コインを引いた金額と交換されます。 L1 から A コインを取得すると、A-1 コインに置き換えられ、L2 から B コインを取得すると、B-1 コインに置き換えられます。課題は、2 つのステップで引き出し金額を最大化することです。これは、コインを 2 回しか引き出すことができないことを意味します。

入力 - L1 - 10、L2 - 11

出力 - 2ステップで引き出すことができる最大金額 - 21

説明 - 最初のステップでは、L2 から 11 枚のコインを取得します。L2 は 11-1=10 枚のコインに置き換えられます。

2 番目のステップでは、L1 と L2 の両方に 10 コインがあるため、どちらからでも取ることができ、最大の 11 10 = 21 コインがあります。

入力 - L1-5、L2-5

出力 - 2ステップで引き出すことができる最大金額 - 10

説明 - 最初のステップでは、L1 から 5 枚のコインを取得します。L1 は 5-1=4 枚のコインに置き換えられます。

2 番目のステップでは、L1 には 4 枚のコインがあり、L2 には 5 枚のコインがあるため、L2 から 5 枚のコインを取り出し、5 5 = 10 枚のコインが最大値になります。

次のプログラムで使用されるメソッドは次のとおりです。

  • 2 つの整数ロッカー 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((配列全体の合計) in D1 - (最小の k 要素の合計の 2 倍)) 配列の合計にはこれらの要素も含まれるため、2 回になります。

    k が大きい場合、最大の k 要素の合計が最大になります -

  • Store abs ((配列全体の合計) - (最大の k を 2 倍します)要素の合計)) 配列の合計にはこれらの要素も含まれるため、2 回行われます。

  • D1 と D2 を比較し、最大値を maxD に格納します。

  • #結果として maxD を返します。

ライブ デモンストレーション

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

出力

上記のコードを実行すると、次の出力が生成されます-

rreeee

以上がCでは、2段階で引き出すことができる最大金額の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。