仓鼠的石子游戏题解代码


include<bits/stdc++.h>// (c++比赛可用万能头)
using namespace std;
int a[1001];//在全局变量中定义数组
int main()
{
int T,j;
scanf("%d",&T);//输入测试案例总数
for(int y=1;y<=T;y++)
{
int n,x=0;
scanf("%d",&n);//循环扫描T次n,n代表圈数
for(int z=1;z<=n;z++)
{
cin>>a[n];//循环输入n次a[n],a[n]代表每圈的石子数
if(a[n]==1) x++;//x为a=1情况发生的个数
if(x%2==0) cout<<"hamster"<<endl;//判断x的奇偶性
else cout<<"rabbit"<<endl;
}
/*解题思路

每圈的石子数/a[n] 1 2 3
4
5
6
圈数/n






1 胜负情况
rabbit
hamster
hamster
hamster
hamster
hamster
2 当第一圈的石子数为1时的胜者
hamster
rabbit
rabbit
rabbit
rabbit
rabbit
2 当第一圈的石子数不为1时的胜者
rabbit
hamster
hamster
hamster
hamster
hamster
3 当第一圈和第二圈的石子数都为1时的胜者
rabbit
hamster
hamster
hamster
hamster
hamster
3
当第一圈的石子数为1第二圈的石子数不为1时的胜者
hamster
rabbit
rabbit
rabbit
rabbit
rabbit
3 当第二圈的石子数为1第一圈的石子数不为1时的胜者
hamster
rabbit
rabbit
rabbit
rabbit
rabbit
以此类推,当有奇数个a[n]=1时,兔子必赢,当有偶数个a[n]=1时,仓鼠必赢。*/
return 0;
}