【C++题解】1406. 石头剪刀布?

欢迎关注本专栏《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 "。(请注意:输出的字符串全部是小写)

样例:

输入:

cpp 复制代码
3
1 2
2 3
1 1

输出:

cpp 复制代码
a win

完整代码如下:

cpp 复制代码
#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;	
}
相关推荐
月挽清风16 分钟前
代码随想录第七天:
数据结构·c++·算法
TTGGGFF17 分钟前
控制系统建模仿真(一):掌握控制系统设计的 MAD 流程与 MATLAB 基础运算
开发语言·matlab
小O的算法实验室18 分钟前
2026年AEI SCI1区TOP,基于改进 IRRT*-D* 算法的森林火灾救援场景下直升机轨迹规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
2501_9444241226 分钟前
Flutter for OpenHarmony游戏集合App实战之贪吃蛇食物生成
android·开发语言·flutter·游戏·harmonyos
小郭团队1 小时前
2_1_七段式SVPWM (经典算法)算法理论与 MATLAB 实现详解
嵌入式硬件·算法·硬件架构·arm·dsp开发
充值修改昵称1 小时前
数据结构基础:从二叉树到多叉树数据结构进阶
数据结构·python·算法
Deepoch1 小时前
Deepoc数学大模型:发动机行业的算法引擎
人工智能·算法·机器人·发动机·deepoc·发动机行业
Lhuu(重开版2 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式
点云SLAM2 小时前
C++内存泄漏检测之Windows 专用工具(CRT Debug、Dr.Memory)和Linux 专业工具(ASan 、heaptrack)
linux·c++·windows·asan·dr.memory·c++内存泄漏检测·c++内存管理
仙俊红2 小时前
Java Map 家族核心解析
java·开发语言