1124: Bash 游戏

来源:互联网 发布:mac os安装教程 编辑:程序博客网 时间:2024/05/21 06:27
题目描述 有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。 输入第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000) 第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)输出共T行,如果A获胜输出A,如果B获胜输出B。样例输入3234样例输出BBA感觉做的麻烦了点#include"iostream"#include "vector"#include <algorithm>long long num = 1e9;using namespace std;int main(){vector<long long> fib;bool flag = true;fib.push_back(1);fib.push_back(2);for (long long i = 2; fib[i-1] + fib[i-2] <= num; i++){fib.push_back(fib[i - 1] + fib[i - 2]);}int test;cin >> test;while (test--){long long temp;cin >> temp;for (vector<long long>::iterator it = fib.begin(); it != fib.end(); it++){if (temp == *it){cout << "B" << endl;flag = false;break;}}if (flag){cout << "A" << endl;}flag = true;}getchar();getchar();return 0;}

0 0
原创粉丝点击