仓鼠的石子游戏题解代码
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 |
return 0;
}