您的位置:首页 > 其它

L1-044. 稳赢

2018-03-20 21:44 375 查看
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔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>
#include<string>
using namespace std;
int main() {
int n;
cin >> n;
string s[10001];
int num = 0;
while (true) {
cin >> s[num++];
if (s[num - 1] == "End") {
break;
}
}
int flag = 0;
for (int i = 0; i < num; i++) {
if (s[i] == "End") {
break;
}
if (flag==n) {
cout << s[i] << endl;
flag = 0;
}
else {
if (s[i] == "ChuiZi") {
cout << "Bu" << endl;
flag++;
}
else if (s[i] == "JianDao") {
cout << "ChuiZi" << endl;
flag++;
}
else if (s[i] == "Bu") {
cout << "JianDao" << endl;
flag++;
}
}
}
return 0;
}改良代码如下:#include<iostream>
#include<string>
using namespace std;
int main() {
int n;
cin >> n;
string s;
cin >> s;
int flag = 0;
while (s!="End") {
if (flag==n) {
cout << s << endl;
flag = 0;
}
else {
if (s == "ChuiZi") {
cout << "Bu" << endl;
flag++;
}
else if (s == "JianDao") {
cout << "ChuiZi" << endl;
flag++;
}
else if (s == "Bu") {
cout << "JianDao" << endl;
flag++;
}
}
cin >> s;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: