2025-03-04:求出硬币游戏的赢家。用go语言,给定两个正整数 x 和 y,分别代表75元和10元硬币的数量。 Alice
【摘要】 2025-03-04:求出硬币游戏的赢家。用go语言,给定两个正整数 x 和 y,分别代表75元和10元硬币的数量。Alice 和 Bob 正在进行一场游戏。游戏的规则是每轮开始时,Alice 先进行操作,然后是 Bob。在每次操作中,玩家必须取走总价值为115的硬币。如果某位玩家无法进行这一操作,那么他就会输掉比赛。在这个游戏中,两位玩家都会采取最优策略。请你判断最终的赢家是谁。1 <= ...
2025-03-04:求出硬币游戏的赢家。用go语言,给定两个正整数 x 和 y,分别代表75元和10元硬币的数量。
Alice 和 Bob 正在进行一场游戏。游戏的规则是每轮开始时,Alice 先进行操作,然后是 Bob。
在每次操作中,玩家必须取走总价值为115的硬币。
如果某位玩家无法进行这一操作,那么他就会输掉比赛。
在这个游戏中,两位玩家都会采取最优策略。请你判断最终的赢家是谁。
1 <= x, y <= 100。
输入:x = 2, y = 7。
输出:“Alice”。
解释:
游戏一次操作后结束:
Alice 拿走 1 枚价值为 75 的硬币和 4 枚价值为 10 的硬币。
答案2025-03-04:
题目来自leetcode3222。
大体步骤如下:
1.初始化两个整数 x 和 y 分别表示 75 元和 10 元硬币的数量,分别为 2 和 7。
2.定义 losingPlayer 函数,接受两个参数 x 和 y,返回字符串类型。函数内部计算最优操作次数 ops,为 x 和 y/4 的较小值。
3.判断 ops 是否为奇数,如果是则返回 “Alice”,否则返回 “Bob”。
4.在主函数 main 中,调用 losingPlayer 函数并传入 x 和 y 的值,将返回结果存储在变量 result 中。
5.打印输出 result,即最终的赢家是谁。
总的时间复杂度:
- 代码中只进行了简单的数学运算和条件判断,时间复杂度为 O(1)。
总的额外空间复杂度:
- 代码中没有使用任何额外空间来存储数据,只使用了几个变量来存储输入和计算结果,空间复杂度为 O(1)。
Go完整代码如下:
package main
import (
"fmt"
)
func losingPlayer(x int, y int) string {
ops := min(x, y / 4)
if ops % 2 == 1 {
return "Alice"
} else {
return "Bob"
}
}
func main() {
x := 2
y := 7
result := losingPlayer(x,y)
fmt.Println(result)
}
Python完整代码如下:
# -*-coding:utf-8-*-
def losing_player(x, y):
ops = min(x, y // 4)
if ops % 2 == 1:
return "Alice"
else:
return "Bob"
if __name__ == "__main__":
x = 2
y = 7
result = losing_player(x, y)
print(result)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
- 2025-03-07:网格图操作后的最大分数。给定一个 n x n 的二维矩阵 grid,初始时所有格子均为白色。你可以进行操作
- 2025-03-06:给定一个长度为 n 的整数组 nums,其中 n 是偶数,同时还有一个整数 k。 你可以进行一些操作,每次
- 绝了!k3s (k8s) 安装 ollama 运行 deepseek 全流程揭秘,yaml全公开
- 2025-03-03:切蛋糕的最小总开销Ⅱ。用go语言,你有一个大小为 m x n 的矩形蛋糕,需要将其切割成 1 x 1 的小
- 2025-03-02:切蛋糕的最小总开销Ⅰ。用go语言,有一个大小为 m x n 的矩形蛋糕,我们需要将其切成 1 x 1 的小
评论(0)