-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnimGame.js
More file actions
32 lines (31 loc) · 1.25 KB
/
nimGame.js
File metadata and controls
32 lines (31 loc) · 1.25 KB
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
////////////////////////////////////////////////Nim Game///////////////////////////////////////////
// You are playing the following Nim Game with your friend:
// Initially, there is a heap of stones on the table.
// You and your friend will alternate taking turns, and you go first.
// On each turn, the person whose turn it is will remove 1 to 3 stones from the heap.
// The one who removes the last stone is the winner.
// Given n, the number of stones in the heap, return true if you can win the game assuming both you and your friend play optimally, otherwise return false.
// Example 1:
// Input: n = 4
// Output: false
// Explanation: These are the possible outcomes:
// 1. You remove 1 stone. Your friend removes 3 stones, including the last stone. Your friend wins.
// 2. You remove 2 stones. Your friend removes 2 stones, including the last stone. Your friend wins.
// 3. You remove 3 stones. Your friend removes the last stone. Your friend wins.
// In all outcomes, your friend wins.
// Example 2:
// Input: n = 1
// Output: true
// Example 3:
// Input: n = 2
// Output: true
/**
* @param {number} n
* @return {boolean}
*/
const canWinNim = function(n) {
return n % 4 > 0;
};
// console.log(canWinNim(4));
// console.log(canWinNim(1));
// console.log(canWinNim(2));