在比赛中,您使用以下策略下注。每当您输掉一个赌注时,下一轮赌注的价值就会翻倍。每当您获胜时,下一轮的赌注将是一美元。您通过下注一美元开始这一轮。
例如,如果您以 20 美元开始,并且您在第一轮中赢得赌注,在接下来的两轮中输掉赌注,然后在第四轮中赢得赌注,您最终会得到 20+1-1-2 +4 = 22 美元。
您应该完成函数 , getFinalAmount
,它有两个参数:
- 第一个参数是一个整数
initialAmount
,它是我们开始投注时的初始金额。 - 第二个参数是一个字符串
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