题目描述
小H组织了一个游戏让小A和小B玩,首先小H拿出 n个石子,双方轮流采取行动。
每当轮到一人行动时,该名玩家需要从石子堆中取走恰好 1个 或 2 或 k 个石子。
如果轮到一人行动时,已经没有石子可取,则该名玩家失败。
已知,双方都会采取最优策略,且 小A率先行动。
请问,最终谁将获胜。
输入
第一行包含整数 T,表示共有 T 组测试数据。
每组数据占一行,包含两个整数 n,k。
输出
每组数据输出一行结果,如果 小A 获胜,则输出 A,否则输出 B。
样例输入
4
0 3
3 3
3 4
4 4
样例输出
B
A
B
A
提示
数据范围:1≤T≤100,0≤n≤10^9,3≤k≤10^9。
有帮助的话采纳一下
#include <iostream>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
int n, k;
cin >> n >> k;
if (n == 0) {
cout << "B" << endl;
continue;
}
if (k <= 2) {
if (n % (k + 1) == 0) cout << "A" << endl;
else cout << "B" << endl;
continue;
}
if (n > k) cout << "A" << endl;
else cout << "B" << endl;
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: