牛牛爱博弈(C++)

题目描述

牛牛和牛妹玩博弈游戏。

牛牛:我们来玩取石子游戏。一共有n堆石子,每个人每次可以取1或2颗石子,谁取走了最后一颗石子就算谁获胜。
牛妹:这游戏太无聊了。
牛牛:那改一改。一共有n堆石子,每个人每次可以取1,2,4,8,…2k2^k2k颗石子,谁取走了最后一颗石子就算谁获胜。
牛妹:好的,你先开始取吧。
牛牛心里知道自己是否有必胜策略,但他想来考考你。
因为牛牛和牛妹很爱玩这种游戏,所以本题有多组数据。

(注:牛牛叫Alan\color{grey}{Alan}Alan,牛妹叫Frame\color{black}{F}\color{red}{rame}Frame.)

输入描述:

第一行,输入数据组数T。
接下来T行,每行一个数n。

输出描述:

对于每一组数据,
如果牛牛必胜,则输出“Alan”(不含引号);

如果牛妹胜,则输出“Frame”(不含引号)。
(PS:牛牛叫 Alan ,牛妹叫 Frame )

示例1

输入

3
1
2
3

输出

Alan
Alan
Frame

说明

当n=1时,牛牛直接取1颗石子即可获胜。
当n=2时,牛牛直接取2颗石子即可获胜。
当n=3时,显然牛牛论怎么取,牛妹都可以获胜。

示例2

输入

3
17
18
19

输出

Alan
Frame
Alan

备注:

数据保证1≤T≤1000,1≤n≤2×1091\le T\le 1000,1\le n\le 2\times 10^91≤T≤1000,1≤n≤2×109





这个题假如就是1与2,那么也就是说这个数如果是3的倍数牛妹就会赢,而 2 k 2^k 2k也是这样,如果能被3整除,就是牛妹赢,否则牛牛赢
代码:

#include<bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
int t; 
int main() {
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		if(n%3==0)
		printf("Frame\n");
		else
		printf("Alan\n");
	}

	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值