描述
题解
从1开始找规律……(1必赢,0必输)不难发现,数位之和的奥妙。
序列 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
局面 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
数位和 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
所以,我们不难总结出,对于N,符合3个一循环的规律,胜胜负。而数位和同样符合此规律( ̄┰ ̄*)……
代码
#include <iostream>
#include <cstring>
using namespace std;
const int win[] = {
1, 1, 0};
int main(int argc, const char * argv[])
{
int T;
cin >> T;
int N;
char S[1010];
while (T--)
{
cin >> S;
int len = (int)strlen(S);
N = 0;
for (int i = 0; i < len; i++)
{
N += S[i] - '0';
}
if (win[(N - 1) % 3])
{
cout << "A\n";
}
else
{
cout << "B\n";
}
}
return 0;
}