sicily--1087. A Funny Game

分析:当n = 1 和 n = 2时,明显的是先下手的 Alice 赢;

而当 n >= 3时, 若n 是偶数,无论先下手的Alice 如何取, Bob只要在其相对的位置取相同的coins即可获胜;

若n 是奇数,如果Alice 先取1个硬币, 则Bob 在其相对的位置取2个后,剩余的硬币数就可以回归到上述的偶数情况了,还是 Bob赢;

如果Alice 先取2个硬币,则Bob 在其相对的位置取1个后,剩余的硬币数就可以回归到上述的偶数情况了,还是 Bob赢;

程序没有优化过

#include<iostream>
using namespace std;

int main()
{
	while(1)
	{
		int n;
		cin >> n;
		if(n == 0)
		{
			break;
		}

		if(n >= 3)
		{
			cout << "Bob" << endl;
		}
		else
		{
			cout << "Alice" << endl;
		}
	}
	return 0;
}


你可能感兴趣的:(优化)