用 C++ 玩尼姆游戏
假设我们正在玩一个叫做尼姆游戏的两人游戏。游戏有一堆石子,每次一个玩家轮流拿走 1 到 3 块石子。拿走最后一块石子的玩家将获胜。玩家1 将率先拿走石子。两位玩家都很聪明,并对游戏有最优策略。我们需要设计一种算法来确定给定一堆石子数量的情况下玩家1 是否能够赢得比赛。
因此,如果输入为 5,则输出将为 true,因为有 5 块石子,所以一开始,如果玩家1 拿走一块石子,那么第二个玩家可以拿走 1 到 3 块石子,玩家2 行动后至少会留有一块石子,因此玩家1 可以获胜。
可以使用一个简单步骤来解决这个问题 -
当 n 除以 4 不等于 0 时返回 true,否则返回 false
示例
让我们看看以下实现,以获得更好的理解 -
#include <bits/stdc++.h> using namespace std; class Solution { public: bool canWinNim(int n) { return n%4!=0; } }; main(){ Solution ob; cout << (ob.canWinNim(5)); }
输入
5
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
输出
1
广告