题目描述
循环相克令是一个两人玩的小游戏。
令词为“猎人、狗熊、枪”,两人同时说出令词,同时做出一个动作——猎人的动作是双手叉腰;狗熊的动作是双手搭在胸前;枪的动作是双手举起呈手枪状。
双方以此动作判定输赢,猎人赢枪、枪赢狗熊、狗熊赢猎人,动作相同则视为平局。
现在给定你一系列的动作组合,请你判断游戏结果。
输入格式
第一行包含整数T,表示共有T组测试数据。
接下来T行,每行包含两个字符串,表示一局游戏中两人做出的动作,字符串为“Hunter”, “Bear”, “Gun”中的一个,这三个单词分别代表猎人,狗熊和枪。
输出格式
如果第一个玩家赢了,则输出“Player1”。
如果第二个玩家赢了,则输出“Player2”。
如果平局,则输出“Tie”。
数据范围
1≤N≤100
样例
输入样例
3
Hunter Gun
Bear Bear
Hunter Bear
输出样例
Player1
Tie
Player2
算法1
C++ 代码:闫式投机取巧法
#include<iostream>
using namespace std;
int get(string s)
{
if(s == "Hunter") return 0;
if(s == "Bear") return 1;
return 2;
}
int main()
{
int n;
cin >> n;
while(n --)
{
string a,b;
cin >> a >> b;
int x = get(a), y = get(b);
if(x == y) cout << "Tie" <<endl;
else if((x + 1) % 3 == y) cout << "Player2"<< endl;
else cout << "Player1" << endl;
}
}
为什么是(x+1)%3
player1为0,play2为1,则player2赢
player1为1,play2为2,则player2赢
player1为2,play2为0,则player2赢
三个数,%3,2号比1号大1则2号赢
我想看的就是这个.jpg