PAT B1018 -- 锤子剪刀布

2024-05-10 19:18
文章标签 pat 锤子 剪刀 b1018

本文主要是介绍PAT B1018 -- 锤子剪刀布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

牛客网PAT乙级第八题,锤子剪刀布,题目描述大致如下:

输入第一行正整数N(N<=105),代表交锋次数,接下来N行输入交锋信息,格式"甲 乙",C代表锤子,B代表布,J代表剪刀。

输出第1,2行分别给出甲和乙的胜,负,平的次数,数字间空格分离,第三行给出两个字母,代表甲和乙获胜次数最多的手势。

空格分隔,如果解不唯一,输出字母序最小的解。


代码如下:

#include <iostream>using namespace std;char FindVictoryWay(int shitou, int jiandao, int bu)
{if (shitou > jiandao){if (bu >= shitou){return 'B';}else{return 'C';}}else if (shitou == jiandao){if (shitou > bu){return 'C';}else{return 'B';}}else{if (jiandao > bu){return 'J';}else{return 'B';}}}int main()
{int N;//交锋次数char a_result, b_result;int a_victory = 0, a_ping = 0, b_victory = 0;int a_shitou = 0, a_jiandao = 0, a_bu = 0, b_shitou = 0, b_jiandao = 0, b_bu = 0;char a_winmost, b_winmost;while (cin >> N){for (int i = 0; i < N; i++){cin >> a_result >> b_result;if (a_result == b_result){a_ping++;}else if (((a_result == 'C') && (b_result == 'J')) || ((a_result == 'B') && (b_result = 'C')) || ((a_result == 'J') && (b_result == 'B'))){a_victory++;switch (a_result){case 'C':a_shitou++;break;case 'J':a_jiandao++;break;case 'B':a_bu++;break;default:break;}}else{b_victory++;switch (b_result){case 'C':b_shitou++;break;case 'J':b_jiandao++;break;case 'B':b_bu++;break;default:break;}}}a_winmost = FindVictoryWay(a_shitou, a_jiandao, a_bu);b_winmost = FindVictoryWay(b_shitou, b_jiandao, b_bu);cout << a_victory << " " << a_ping << " " << b_victory << endl;cout << b_victory << " " << a_ping << " " << a_victory << endl;cout << a_winmost << " " << b_winmost << endl;}return 0;
}

这篇关于PAT B1018 -- 锤子剪刀布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/977316

相关文章

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

连载:面向对象葵花宝典:思想、技巧与实践(4) - 面向对象是瑞士军刀还是一把锤子?

为什么要面向对象? 可以说,面向过程和计算机是如影随形的。从计算机诞生之日起,面向过程就是占据着主导地位的思想,即使到了现在,面向过程也是无处不在的,C语言、操作系统、协议栈、驱动系统,都是面向过程的代表。  那为什么还会有面向对象的诞生并流行呢?当然是面向过程存在某些不足,如果面向过程足够好,谁还费心费力的去搞另外一套呢?  前面我们提到,面向过程是一种机器的思想,

PAT (Advanced Level) Practice

1001:  题目大意: 计算 a+b 的结果,并以标准格式输出——即每三个数字一组,组之间用逗号分隔(如果数字少于四位,则不需要逗号分隔)  解析: 我们知道相加右正有负,对于样例来说 Sample Input: -1000000 9 Sample Output: -999,991 如果是从左往右,算上负号的话输出应该是-99,999,1 从右往左:-,999,991离正确

1050 String Subtraction——PAT甲级

Given two strings S1​ and S2​, S=S1​−S2​ is defined to be the remaining string after taking all the characters in S2​ from S1​. Your task is simply to calculate S1​−S2​ for any given strings. However,

1105 链表合并——PAT乙级

给定两个单链表 L1​=a1​→a2​→⋯→an−1​→an​ 和 L2​=b1​→b2​→⋯→bm−1​→bm​。如果 n≥2m,你的任务是将比较短的那个链表逆序,然后将之并入比较长的那个链表,得到一个形如 a1​→a2​→bm​→a3​→a4​→bm−1​⋯ 的结果。例如给定两个链表分别为 6→7 和 1→2→3→4→5,你应该输出 1→2→7→3→4→6→5。 输入格式: 输入首先在第一

1110 区块反转——PAT乙级

给定一个单链表 L,我们将每 K 个结点看成一个区块(链表最后若不足 K 个结点,也看成一个区块),请编写程序将 L 中所有区块的链接反转。例如:给定 L 为 1→2→3→4→5→6→7→8,K 为 3,则输出应该为 7→8→4→5→6→1→2→3。 输入格式: 每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤105)、以及正整数 K (

携程编程大赛 (预赛第二场)第一题【剪刀石头布】

Problem Description 现有M个人一起玩剪刀石头布,以1-M编号,每人出一种,出过不再改变,但是我们并不知道它到底是哪一种。 (其中石头赢剪刀,剪刀赢布,布赢石头,一样则平) 裁判用两种说法对这M个人所构成的输赢关系进行描述:  一:"1 A B",表示第A个人和第B个人出的一样。  二:"2 A B",表示第A个人赢第B个人。  裁判对M个人,用以上两种说法,连说

[数据集][目标检测]锤子检测数据集VOC+YOLO格式1510张1类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1510 标注数量(xml文件个数):1510 标注数量(txt文件个数):1510 标注类别数:1 标注类别名称:["hammer"] 每个类别标注的框数: hammer 框数 = 1955 总框数:1955 使用

PAT-1039 到底买不买(20)(字符串的使用)

题目描述 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2258可以