レースでは、次の戦略を使用して賭けます。賭けに負けると、次のラウンドの賭けの価値が2倍になります。あなたが勝つたびに、次のラウンドの賭けは1ドルになります。あなたは1ドルを賭けることからラウンドを開始します。
たとえば、20ドルから始めて、最初のラウンドで賭けに勝ち、次の2ラウンドで賭けに負け、次に4番目のラウンドで賭けに勝った場合、最終的に20+1-1-2になります。 +4=22ドル。
getFinalAmount
次の2つの引数を取る関数を完了する必要があります。
- 最初の引数は整数
initialAmount
です。これは、賭けを開始したときに私たちが持っている最初の金額です。 - 2番目の引数は文字列
betResults
です。結果のi番目の文字は、「W」(勝ち)または「L」(負け)のいずれかになり、i番目のラウンドの結果を示します。関数は、すべてのラウンドがプレイされた後に持つ金額を返す必要があります。
ある時点で、賭けの価値をカバーするのに十分なお金がアカウントにない場合は、その時点で持っている金額を停止して返す必要があります。
私はこのコードを試しましたが失敗しました:
var amountInHand = 15;
var possiblities = "LLLWLLLL";
static int Calculate(int amountInHand, string possibles)
{
var lastBet = 1;
foreach (char c in possiblities)
{
if (c == 'W')
{
amountInHand = amountInHand + 1;
}
else if (c == 'L')
{
var loss = 0;
if (lastBet == 1)
{
loss = lastBet;
}
else if (lastBet > 1)
{
loss = lastBet * 2;
}
amountInHand = amountInHand - loss;
lastBet++;
}
}
return amountInHand;
}
期待される出力
1st round - Loss: 15-1 = 14
2nd round - Loss: 14-2 = 12 (Bet doubles)
3rd round - Loss: 12-4 = 8
4th round - Win: 8 + 8 = 16
5th round - Loss:16-1 = 15 (Since the previous bet was a win, this bet has a value of 1 dollar)
6th round - Loss: 15-2 = 13
7th round - Loss: 13-4 = 9
8th round - Loss: 9-8 = 1