配合拍摄游戏

题目1:今有若干堆火柴,两人依次从中拿取。规定每次仅仅能从一堆中取若干根, 

可将一堆全取走,但不可不取,最后取完者为胜,求必胜的方法。

 

  若sum=0;则先取者输,后取者胜。

  若sum=。0,则先取者使其变成神秘状态,先取者胜

 即谁先面临神秘状态谁输。

题目2:今有若干堆火柴,两人依次从中拿取,规定每次仅仅能从一堆中取若干根, 

可将一堆全取走。但不可不取。最后取完者为负。求必胜的方法。

  分为2种情况:1:每一个堆数的火柴数量为1,若为奇数堆,先取者最后取完。则输。

若为偶数堆,后取则输

 2、每一个堆数的火柴数量不是1,若sum=0。则先取者输。后取者胜。

 若sum=!0,先取者胜,后取者输

总结:谁先面临神秘状态谁输。无论哪种情况!


代码例如以下:

#include<stdio.h>
int main()
{
int T,a[100],i,sum,m,ok;
while(~scanf("%d",&T))
{
while(T--)
{
sum=0;
ok=0;
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%d",&a[i]);
if(a[i]>1) ok=1;
sum=sum^a[i];
}
if(ok==0)
{
if(m%2==0)
printf("John\n");
else
printf("Brother\n");
}
else
if(sum==0)
printf("Brother\n");
else
printf("John\n");
}
}
return 0;
}