首页 > 编程语言 > 详细

Java [Leetcode 292]Nim Game

时间:2015-12-13 21:47:08      阅读:143      评论:0      收藏:0      [点我收藏+]

问题描述:

You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones.

Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap.

For example, if there are 4 stones in the heap, then you will never win the game: no matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend.

解题思路:

这道题比较简单,就是判断给定的n是否为4的倍数。

如果n为4的倍数,那么作为先手,是没有机会获胜的,因为每次我走完,那么对方只要走的数目跟我这次相加为4即可。

如果n不为4的倍数,那么我第一次拿走的数目使得剩余的数目为4的倍数,这样就变成了前一种情况,只不过这次轮到我是后来走的人。

代码如下:

public class Solution {
    public boolean canWinNim(int n) {
		if (n % 4 == 0)
			return false;
		else
			return true;
	}
}

  

Java [Leetcode 292]Nim Game

原文:http://www.cnblogs.com/zihaowang/p/5043583.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!