题目链接
https://leetcode-cn.com/problems/divisor-game/
解题思路
N为奇数的时候Alice必败,N为偶数的时候Alice必胜下面是leetcode官方证明显然N = 1和N = 2时结论成立N > 2时,假设N <= k时该结论成立,则N = k + 1时:
如果k为偶数,则k + 1为奇数,x是k + 1的因数,只可能是奇数,而奇数 - 奇数 = 偶数,且k + 1 - x <= k,故轮到Bob的时候都是偶数。而根据我们的猜想假设N <= k的时候偶数的时候先手必胜,故此时无论Alice拿走什么,Bob都会处于必胜态,所以Alice处于必败态如果k为奇数,则k + 1为偶数,x可以是奇数也可以是偶数,若Alice减去一个奇数,那么k + 1 - x是一个小于等于k的奇数,此时Bob占有它,处于必败态,则Alice处于必胜态
AC代码
class Solution {
public boolean divisorGame(int N
) {
return N
% 2 == 0;
}
}