Bash游戏 V4
发布时间:2020-12-15 09:07:30 所属栏目:安全 来源:网络整理
导读:有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。 例如N = 3。A
有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。
例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1<=T<=1000) 第2-T+1行:每行1个数N。(1<=N<=10^9)
Output
共T行,如果A获胜输出A,如果B获胜输出B。
Input示例
3 2 3 4
Output示例
B B A #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int fb[44]; void init() { fb[1] = 1; fb[2] = 2; for (int i = 3; i < 44; i++) { fb[i] = fb[i-1] + fb[i-2]; } } int main() { init(); int t,n; cin >> t; for (int i = 0; i < t; i++) { cin >> n; bool found = false; for (int j = 1; j < 44; j++) { if (fb[j] == n) { found = true; break; } if (fb[j] > n) { break; } } if (!found) { cout << "A" << endl; } else { cout << "B" << endl; } } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 分享bootstarp3.0.2响应式模板-第二弹[Metronic_
- AngularJS指令:链接和编译功能是否意味着一起工
- angularjs – Angular – 在子指令的控制器中获取
- 单位测试 – 错误:不可分配的模型表达式:未定义
- unix – 是否可以同时运行两个不同版本的tmux?
- angularjs – 在Angular UI-Router的动态视图中添
- Angular 2如何让setter等待输入setter来完成
- bash – 为什么cron.weekly没有运行?
- 详解bootstrap的modal-remote两种加载方式【强化
- c# – NHibernate和Memcached – 教程/示例
热点阅读