Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- func canWinNim(_ n: Int) -> Bool {
- return canWinNim(n, myTurn: true)
- }
- func canWinNim(_ n: Int, myTurn: Bool) -> Bool {
- if myTurn && n <= 3 {
- return true
- } else if !myTurn && n <= 3 {
- return false;
- }
- let one = canWinNim(n-1, myTurn: !myTurn)
- if myTurn && one {
- return true
- } else if !myTurn && !one {
- return false
- }
- let two = canWinNim(n-2, myTurn: !myTurn)
- if myTurn && two {
- return true
- } else if !myTurn && !two {
- return false
- }
- let three = canWinNim(n-3, myTurn: !myTurn)
- if myTurn && three {
- return true
- } else if !myTurn && !three {
- return false
- }
- if myTurn {
- return false;
- } else {
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement