题目描述 两名玩家正在玩扑克对赌。在游戏开始时,玩家A有X美元而玩家B有Y美元。 已知X和Y是非负整数,且X + Y = 10000。 两名玩家已经打了三轮对赌,每轮的形式都是如下: (1)玩家A下注所有的钱。 (2)玩家B照跟玩家A。(也就是说,他们对赌的钱相同。) (3)开盘,玩家A赢了。 现在的问题是:是否有可能使得:在第三轮对赌结束之后,玩家B恰好还剩下T美元?如果不可能,输出-1。否则,请输出玩家B一开始拥有的金额Y。 输入格式 第一行,一个整数T。 0<=T<=10000。 输出格式 一个整数。 输入/输出例子1 输入: 2000 输出: 9000根据上方描述,写出完整的程序
时间: 2024-02-22 14:57:57 浏览: 120
Python实现-《升级》扑克牌游戏,包括UI界面,AI玩家,裁判监督三大模块.rar
5星 · 资源好评率100%
```python
T = int(input())
if T % 2 == 1:
print(-1)
else:
Y = (10000 - T) // 2
if Y < T:
print(-1)
else:
print(Y)
```
解释:
同样地,每一轮结束后,玩家B的钱都会减半。因此,如果最终玩家B恰好还剩下T美元,那么前两轮结束后,玩家B一共赢得了10000 - T 美元。由于初始时玩家A和玩家B的钱相加为10000,因此,前两轮结束后,玩家B一开始拥有的金额Y为 (10000 - T) / 2。如果T为奇数,显然无法满足条件,输出-1。如果T为偶数,还需要判断Y是否大于等于T,因为在第三轮结束后,玩家B至少要剩下T美元。如果Y小于T,那么就无法满足条件,输出-1。否则,输出计算出来的玩家B一开始拥有的金额Y即可。
阅读全文