2025-03-04:求出硬币游戏的赢家。用go语言,给定两个正整数 x 和 y,分别代表75元和10元硬币的数量。 Alice

举报
福大大架构师每日一题 发表于 2025/03/04 10:24:34 2025/03/04
44 0 0
【摘要】 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:

chatgpt

题目来自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
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。