有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量只能是2的正整数次幂,比如(1,2,4,8,16....),拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。
例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。(输入的N可能为大数)
这一题的证明,我真不知道,做的时候可能那会思路可能活跃吧,直接猜的,什么时候再证明一下,再补上吧
#include<stdio.h>
char str[10008];
int main(){
__int64 sum,i,t;
scanf("%I64d",&t);
while(t--){
sum=0;
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
sum+=str[i]-'0';
if(sum%3)
printf("A\n");
else printf("B\n");
}
}