题目描述: 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式: 输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。
输出格式: 对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例: 2 ChuiZi JianDao Bu JianDao Bu ChuiZi ChuiZi End 输出样例: Bu ChuiZi Bu ChuiZi JianDao ChuiZi Bu
解题思路: 水题。
通关代码:
#include <iostream>
using namespace std;
string getWin(string root) {
if (root == "ChuiZi") {
return "Bu";
} else if (root == "JianDao") {
return "ChuiZi";
} else if (root == "Bu") {
return "JianDao";
} else {
return "END";
}
}
int main() {
string root;
int n, count = 0;
cin >> n;
while (true) {
cin >> root;
count++;
if (getWin(root) == "END") break;
if (count != 0 && count % (n + 1) == 0) {
cout << root << endl;
} else {
cout << getWin(root) << endl;
}
}
return 0;
}
通关截图: