给出两个数字n
和m
,即只允许一个操作
我们只能减去较小数字的倍数,并且不能为零,即每转至少要减去1。
如何找到将任意一个数字减少为0的最佳路径?
我尝试使用以下规则:
gcd(m, n) == min(m, n)
,则转1圈(n % (m % n) == 0 and n + (m % n) < m)
然后2圈if(__gcd(a, b) == min(a, b) || __gcd(a, b) == 1 || (n % (m % n) == 0 && n + (m % n) < m))
cout << "Win";
else
cout << "Lose";
预期结果显示,如果有人从头开始并且有2名玩家在玩,则考虑到每个玩家的最佳玩法,则第一个玩家是赢还是输。
例如
1 1
Win
4 4
Win
4 6
Lose
答案 0 :(得分:0)
根据您的问题陈述,只有两种情况: