欢迎关注本专栏《C++从零基础到信奥赛入门级(CSP-J)》
问题:1406. 石头剪刀布?
类型:二维数组
题目描述:
石头剪刀布是常见的猜拳游戏。石头胜剪刀,剪刀胜布,布胜石头。如果两个人出拳一样,则不分胜负。一天,小 a 和小 b 正好在玩石头剪刀布,假设 1 代表石头, 2 代表剪刀, 3 代表布。小 a 和小 b 一共玩了 n 轮,请问最后的比赛结果是小 a 赢了还是小 b 赢了,还是平局?
注意:最终输赢按照小 a 和小 b 赢的总次数计算。例如:共比赛 7 局,小 a 赢了 4 局,小 b 赢了 3 局,那么输出“ a win ”。
输入:
第一行,是一个整数 n ( n≤100 )
接下来 n 行,每行有 2 个数,分别代表每轮比赛中小 a 和小 b 的出拳。
输出:
如果小 a 赢了,输出字符串“ a win ”,如果小 b 赢了,输出字符串“ b win ”,如果平局则输出字符串“ tie ”。(请注意:输出的字符串全部是小写)
样例:
输入:
3
1 2
2 3
1 1
输出:
a win
完整代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
//一、分析问题
//已知: 一共玩了 n 轮石头剪刀布;
//未知:请问最后的比赛结果是小 a 赢了还是小 b 赢了,还是平局?
//关系: 1 代表石头, 2 代表剪刀, 3 代表布。
//二、数据定义
int n,a=0,b=0;
//三、数据输入
cin>>n;
int t1,t2;
for(int i=0;i<n;++i){
cin>>t1>>t2;
//四、数据计算
if(t1-t2==-1||t1-t2==2){
++a;
}else if(t1==t2){
++a;
++b;
}else{
++b;
}
}
//五、输出结果
if(a>b){
cout<<"a win";
}else if(a<b){
cout<<"b win";
}else{
cout<<"tie";
}
return 0;
}