A Funny Game(poj2484)

本文介绍了一种两人轮流从环状排列的硬币堆中移除硬币的游戏,目标是成为移除最后一枚硬币的玩家。通过分析,发现当硬币数量为1或2时,先手Alice获胜;当硬币数量大于3时,后手Bob通过特定策略可确保胜利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 题解:因为是一个环,当n>3时无论alice先取,然后Bob可以从中个特殊的位置,使其分成相同的两部分,这样Bob跟着alice取,由于Bob慢一步所以BOb最后赢。

Alice和bob决定玩一个有趣的游戏。 在游戏开始时,他们在一个圆圈中选择n个硬币,如图所示。

移动包括移除一个或两个相邻的硬币,其他硬币位置保持不变。 必须至少移除一枚硬币。 Alice首先开始移动,之后两人交替移动。 
移除最后一枚硬币的玩家获胜。

假设Alice和Bob都足够聪明。
你要编写一个程序来确定最终谁将赢得比赛。

输入

多组输入,每个输入占一行。
每行输入一个整数 n(1≤n≤1000000) 
当输入 n 为0时结束。

输出

每个输出占一行。对于每个样例,如果 Alice 赢,则输出 “Alice” ,否则输出 “Bob” 。

样例

input

1
2
3
0

output

Alice
Alice
Bob
#include<stdio.h>
int main()
{
	int n;
	while(scanf("%d",&n),n)
	{
		if(n==1||n==2) printf("Alice\n");
		else printf("Bob\n");
	}
	return 0;


	
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值