加载中...
1025-除数博弈(Divisor Game)
发表于:2021-12-03 | 分类: 简单
字数统计: 581 | 阅读时长: 2分钟 | 阅读量:

原文链接: https://leetcode-cn.com/problems/divisor-game

英文原文

Alice and Bob take turns playing a game, with Alice starting first.

Initially, there is a number n on the chalkboard. On each player's turn, that player makes a move consisting of:

  • Choosing any x with 0 < x < n and n % x == 0.
  • Replacing the number n on the chalkboard with n - x.

Also, if a player cannot make a move, they lose the game.

Return true if and only if Alice wins the game, assuming both players play optimally.

 

Example 1:

Input: n = 2
Output: true
Explanation: Alice chooses 1, and Bob has no more moves.

Example 2:

Input: n = 3
Output: false
Explanation: Alice chooses 1, Bob chooses 1, and Alice has no more moves.

 

Constraints:

  • 1 <= n <= 1000

中文题目

爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。

最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:

  • 选出任一 x,满足 0 < x < N 且 N % x == 0 。
  • N - x 替换黑板上的数字 N

如果玩家无法执行这些操作,就会输掉游戏。

只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 False。假设两个玩家都以最佳状态参与游戏。

 

示例 1:

输入:2
输出:true
解释:爱丽丝选择 1,鲍勃无法进行操作。

示例 2:

输入:3
输出:false
解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。

 

提示:

  1. 1 <= N <= 1000

通过代码

高赞题解

  1. 数字N如果是奇数,它的约数必然都是奇数;若为偶数,则其约数可奇可偶。
  2. 无论N初始为多大的值,游戏最终只会进行到N=2时结束,那么谁轮到N=2时谁就会赢。
  3. 因为爱丽丝先手,N初始若为偶数,爱丽丝则只需一直选1,使鲍勃一直面临N为奇数的情况,这样爱丽丝稳赢;
    N初始若为奇数,那么爱丽丝第一次选完之后N必为偶数,那么鲍勃只需一直选1就会稳赢。

综述,判断N是奇数还是偶数,即可得出最终结果!

统计信息

通过次数 提交次数 AC比率
77111 108708 70.9%

提交历史

提交时间 提交结果 执行时间 内存消耗 语言
上一篇:
1024-视频拼接(Video Stitching)
下一篇:
1027-最长等差数列(Longest Arithmetic Subsequence)
本文目录
本文目录