您现在的位置是:首页 > 编程 > 

im 游戏(C++)

2025-07-20 19:36:59
im 游戏(C++) im 游戏你和你的朋友,两个人一起玩 im 游戏:桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回true;否则,返回 false。示例 1:代码语言:javascript

im 游戏(C++)

im 游戏

你和你的朋友,两个人一起玩 im 游戏:

  • 桌子上有一堆石头。
  • 你们轮流进行自己的回合, 你作为先手 。
  • 每一回合,轮到的人拿掉 1 - 块石头。
  • 拿掉最后一块石头的人就是获胜者。

假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回true;否则,返回 false

示例 1:

代码语言:javascript代码运行次数:0运行复制
输入:n = 4
输出:false 
解释:以下是可能的结果:
1. 移除1颗石头。你的朋友移走了块石头,包括最后一块。你的朋友赢了。
2. 移除2个石子。你的朋友移走2块石头,包括最后一块。你的朋友赢了。
.你移走颗石子。你的朋友移走了最后一块石头。你的朋友赢了。
在所有结果中,你的朋友是赢家。

示例 2:

代码语言:javascript代码运行次数:0运行复制
输入:n = 1
输出:true

示例 :

代码语言:javascript代码运行次数:0运行复制
输入:n = 2
输出:true

提示:

  • 1 <= n <= 21 - 1
代码语言:javascript代码运行次数:0运行复制
class Solution {
public:
// 如果是第一感觉 应该是dp问题 
// 但是dp问题又太难了 
// 然后就是贪心问题 
// 然后就是开始规律
// 这个规律就是 对于一次1~个那么把总数不断的划分 
// 然后看最小集合 如果是n <= 的话 那么就是第一个必赢
// 如果是4个的话 第二个人必赢
// 然后感觉就是这个循环 如果是4的倍数好像就可以赢
// 贪心问题就是这样试出来的

    bool canWinim(int n) {
        return n % 4 != 0;
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2022-12-06,如有侵权请联系 cloudcommunity@tencent 删除集合c++游戏dp函数

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1160997.html

相关标签:无
上传时间: 2025-07-20 15:29:42
留言与评论(共有 10 条评论)
本站网友 雪拥蓝关马不前
11分钟前 发表
你的朋友移走2块石头
本站网友 伊利金领冠奶粉
30分钟前 发表
你们轮流进行自己的回合
本站网友 醋的美容功效
22分钟前 发表
每一回合
本站网友 数模论坛
17分钟前 发表
每一回合
本站网友 235
29分钟前 发表
包括最后一块
本站网友 昆山财政网
26分钟前 发表
你的朋友移走了块石头
本站网友 长沙爱思特
20分钟前 发表
轮到的人拿掉 1 - 块石头
本站网友 中山吃喝玩乐
8分钟前 发表
// 如果是第一感觉 应该是dp问题 // 但是dp问题又太难了 // 然后就是贪心问题 // 然后就是开始规律 // 这个规律就是 对于一次1~个那么把总数不断的划分 // 然后看最小集合 如果是n <= 的话 那么就是第一个必赢 // 如果是4个的话 第二个人必赢 // 然后感觉就是这个循环 如果是4的倍数好像就可以赢 // 贪心问题就是这样试出来的 bool canWinim(int n) { return n % 4 != 0; } };本文参与 腾讯云自媒体同步曝光计划
本站网友 半岛晨报电子版
2分钟前 发表
两个人一起玩 im 游戏:桌子上有一堆石头