leetcode1025. 除数博弈

问题连接:1025. 除数博弈

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
* @lc app=leetcode.cn id=1025 lang=java
*
* [1025] 除数博弈
*
* https://leetcode-cn.com/problems/divisor-game/description/
*
* algorithms
* Easy (52.33%)
* Total Accepted: 875
* Total Submissions: 1.7K
* Testcase Example: '2'
*
* 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。
*
* 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作:
*
*
* 选出任一 x,满足 0 < x < N 且 N % x == 0 。
* 用 N - x 替换黑板上的数字 N 。
*
*
* 如果玩家无法执行这些操作,就会输掉游戏。
*
* 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。
*
*
*
*
*
*
* 示例 1:
*
* 输入:2
* 输出:true
* 解释:爱丽丝选择 1,鲍勃无法进行操作。
*
*
* 示例 2:
*
* 输入:3
* 输出:false
* 解释:爱丽丝选择 1,鲍勃也选择 1,然后爱丽丝无法进行操作。
*
*
*
*
* 提示:
*
*
* 1 <= N <= 1000
*
* 如果两人都是最佳玩家,那么偶数必胜,不存在玩家操作的问题。
*
* 根据算法,如果初始时自己是偶数,那么可以保证自己每一轮操作之后都是偶数,当是最小的偶数 2 时,必胜。所以直接根据取余的值返回即可
*
*/
class Solution {
public boolean divisorGame(int N) {
if (N % 2 == 0) return true;
return false;
}
}

~~~


面条先生 wechat
欢迎关注我的 “知乎日报” 小程序