当前位置: 首页 > news >正文

【洛谷入门赛】B4018 游戏与共同语言

题意

这里有两个队伍分别叫 A 和 B。

分别给定这两个队伍的胜利数、净胜局、平局数量。

求哪个队更厉害,就输出哪个。

具体比较规则如下:

两队中胜利数高的队伍更厉害。

若胜利数相同,净胜数高的队伍更厉害。

若净胜数仍然相同,平局记录数更低的队伍更厉害。

(题目特殊条件:平局数一定不一样)

举个例子。

队伍 A B 的数据如下:

队伍:A B

胜利数:11 11

净胜数:20 20

平局数:7 6

那么比较过程(如图所示):


对于这个样例的解释:

前面的胜利数和净胜数都一样,所以只能比较平局数。又因为平局数越小越厉害,故 B 要更厉害所以输出 B。

思路

首先,我们要输入。

  • 注:这里用数组记录。w[] 为胜利数、c[] 为净胜数、t[] 为平局数。这里下标为 1 的是 A 队,同理可得下表为 2 的是 B 队。
cin>>w[1]>>c[1]>>t[1]>>w[2]>>c[2]>>t[2];

输入完之后,根据题目要求:我们要对 A B 两队的数据进行挨个比较。

首先登场的是胜局数。如果它不同,直接比较然后输出哪一队更强即可。

这部分的代码:

(如果你没看懂 cout 输出的是什么,那么请移步到后面)

if(w[1]!=w[2]){
  cout<<(w[1]>w[2]?"A":"B");
}

其次,如果胜利局数一样,那就比较净胜局数。这里是净胜局数越多越好。

else if(c[1]!=c[2]){
  cout<<(c[1]>c[2]?"A":"B");
}

最后,如果净胜局数也一样,那就比较平局数记录。这里是平局数越少越好。

else{
  cout<<(t[1]>t[2]?"B":"A");
}

由于题目有特殊条件说不可能平局数记录也一样,所以到此为止。

放一下完整代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5;
int w[N],c[N],t[N];
signed main(){
	cin>>w[1]>>c[1]>>t[1]>>w[2]>>c[2]>>t[2];
	if(w[1]!=w[2]){
		cout<<(w[1]>w[2]?"A":"B");
	}
	else if(c[1]!=c[2]){
		cout<<(c[1]>c[2]?"A":"B");
	}
	else{
			cout<<(t[1]>t[2]?"B":"A");
	}
    return 0;
}

如果你不知道这里:

const int N=5;

是在干什么,这一份是直接定义变量的代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int w[5],c[5],t[5];
signed main(){
	cin>>w[1]>>c[1]>>t[1]>>w[2]>>c[2]>>t[2];
	if(w[1]!=w[2]){
		cout<<(w[1]>w[2]?"A":"B");
	}
	else if(c[1]!=c[2]){
		cout<<(c[1]>c[2]?"A":"B");
	}
	else if(t[1]!=t[2]){
		cout<<(t[1]>t[2]?"B":"A");
	}
    return 0;
}

如果你没看懂 cout 输出的是啥

这里使用的是三目运算符。

格式为:

/*[条件]*/?/*[如果满足条件,那么……]*/:/*[如果不满足条件,那么……]*/;

约等于:

if(/*[条件]*/)/*[如果满足条件,那么……]*/;
else/*[如果不满足条件,那么……]*/;

这就是三目运算符。三目运算符后面不满足条件执行的东西只能是一句话,就相当于是不打括号的 if 和 else。使用三目运算符可以在编程的时候加快你的速度。

这里附上不用三目运算符的版本:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5;
int w[N],c[N],t[N];
void A(){//用函数封装更方便 
	cout<<"A";
}
void B(){
	cout<<"B";
}
signed main(){
	cin>>w[1]>>c[1]>>t[1]>>w[2]>>c[2]>>t[2];
	if(w[1]!=w[2]){
		if(w[1]>w[2])A();
		else B();
	}
	else if(c[1]!=c[2]){
		if(c[1]>c[2])A();
		else B();
	}
	else{
		if(t[1]>t[2])B();
		else A();
	}
    return 0;
}

顺带附上不用函数封装的输出的版本:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5;
int w[N],c[N],t[N];
signed main(){
	cin>>w[1]>>c[1]>>t[1]>>w[2]>>c[2]>>t[2];
	if(w[1]!=w[2]){
		if(w[1]>w[2])cout<<"A";
		else cout<<"B";
	}
	else if(c[1]!=c[2]){
		if(c[1]>c[2])cout<<"A";
		else cout<<"B";
	}
	else{
		if(t[1]>t[2])cout<<"B";
		else cout<<"A";
	}
    return 0;
}

顺带附上我的通过记录!

(你有发现这四个字是四个不同版本代码的提交记录吗?)

那么这道题就结束了,希望可以帮到你!

相关文章:

  • spring MVC执行流程
  • xss-lab
  • python与C系列语言的差异总结(3)
  • 《论区块链技术及应用》审题技巧 - 系统架构设计师
  • smolagents学习笔记系列(五)Tools-in-depth-guide
  • 每日一题-设计内存分配器;详细分析思路以及多解法
  • 如何防止 Docker 注入了恶意脚本
  • C++学习之C概述、数据类型、进制转换与数据存储
  • IntelliJ创建Springboot项目
  • spark的一些指令
  • 链式二叉树
  • 在 Ansys Mechanical 中解决干涉拟合
  • <modal>修改取消按钮样式
  • 半导体芯片制造中 W CVD(钨化学气相沉积)
  • Android开发弹框在底部显示
  • Markdown
  • 深入理解指针2
  • 【一条龙教程】用AI DS+创作原创音乐 (配合Midjourney漫画)制作原创MTV
  • vue3:vue3项目安装并引入Element-plus
  • 深入探讨分布式事务解决方案:从二阶段提交到现代模式
  • 高质量网站外链平台/巨量引擎广告投放平台官网
  • 一个网站做三页是什么意思/营销推广型网站
  • 网站地图模版/深圳关键词优化平台
  • 网页版游戏推荐/温州网站建设优化
  • 南宁网站建设教学/免费信息推广网站
  • 青岛建设大学招聘信息网站/网络推广岗位职责和任职要求