6170题目描述:部分A+B

正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。

现给定A、DA、B、DB,请编写程序计算PA + PB。

  • 输入
    输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。
  • 输出
    在一行中输出PA + PB的值。
  • 样例输入
    3862767 6 13530293 3
    3862767 1 13530293 8
  • 样例输出
    399
    0
#include <iostream>
using namespace std;
int main() {string a, b;char m, n, d_a[10] = {}, d_b[10] = {};int c = 0, d = 0 , j = 0;cin >>a >>m >>b >>n;for (int i = 0; i < a.length(); i++) {if (a[i] == m) d_a[j++] = m;}int k = 0;for (int i = 0; i < b.length(); i++) {if (b[i] == n) d_b[k++] = n;}sscanf(d_a,"%d", &c);sscanf(d_b,"%d", &d);cout <<c+d<<endl;return 0;
}

6172题目描述:锤子剪刀布

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

  • 输入
    输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。
  • 输出
    输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。
  • 样例输入
    10
    C J
    J B
    C B
    B B
    B C
    C C
    C B
    J B
    B C
    J J
  • 样例输出
    5 3 2
    2 3 5
    B B

两种方法:

方法(1)
只用统计甲和乙各自赢的次数,n-(j_win + y_win) = 平局的次数
str[4];手势字符串,j[3], y[3],统计每个手势获胜的次数
max_j : 获胜次数最多手势,在str中的索引

#include <iostream>
using namespace std;
int main() {char str[4] = {"CJB"},a , b;int j_win = 0 , y_win = 0, n;int j[3] = {0}, y[3] = {0};cin >>n;for (int i = 0; i < n ; i++) {cin >> a >> b;         //甲乙的手势if (a == 'C' && b == 'J') {j_win++;j[0]++;} else if (a == 'C' && b == 'B') {y_win++;y[2]++;} else if (a == 'J' && b == 'B') {j_win++;j[1]++;} else if (a == 'J' && b == 'C') {y_win++;y[0]++;} else if (a == 'B' && b == 'J') {y_win++;y[1]++;} else if (a == 'B' && b == 'C') {j_win++;j[2]++;}}int max_j = j[0] >= j[1] ? 0 : 1;max_j = j[max_j] >= j[2] ? max_j : 2;int max_y = y[0] >= y[1] ? 0 : 1;max_y = y[max_y] >= y[2] ? max_y : 2;cout <<j_win<<' '<<n-(j_win+y_win)<<' '<<y_win<<endl;cout <<y_win<<' '<<n-(j_win+y_win)<<' '<<j_win<<endl;cout <<str[max_j]<<' '<<str[max_y]<<endl;return 0;
}

方法(二):
布:B, 锤:C,剪:J,按照字典顺序转化为数字
B : 0, C : 1, J : 2;
举个例子:

if (((int)a + 1) %3 == (int)b):j_win++;j[(int)a]++;

(int)a ,(int) b并真正的强制类型转化,只是表示将,a,b甲乙的手势字符,转化为对应的数字
如果甲>乙:C > J (1+1)%3=2 = J,所以 甲win.

#include <iostream>
using namespace std;
int transform(char c) {if (c == 'B') return 0;if (c == 'C') return 1;if (c == 'J') return 2;
}
int main() {char str[4] = "BCJ",a , b;int j_win = 0 , y_win = 0, n;int j[3] = {0}, y[3] = {0};cin >>n;for (int i = 0; i < n ; i++) {cin >> a >> b;int k1 = transform(a);int k2 = transform(b);if ((k1+1)%3 == k2) {j_win++;j[k1]++;}else if (k1 == k2)continue;else {y_win++;y[k2]++;}}int max_j = j[0] >= j[1] ? 0 : 1;max_j = j[max_j] >= j[2] ? max_j : 2;printf("%d %d %d",j[0],j[1],j[2]);int max_y = y[0] >= y[1] ? 0 : 1;max_y = y[max_y] >= y[2] ? max_y : 2;cout <<j_win<<' '<<n-(j_win+y_win)<<' '<<y_win<<endl;cout <<y_win<<' '<<n-(j_win+y_win)<<' '<<j_win<<endl;cout <<str[max_j]<<' '<<str[max_y]<<endl;return 0;
}

C/C++[入门最后两题]相关推荐

  1. 数列分块入门(套题)(loj6277,loj6278,loj6279,loj6280,loj6281,loj6282,loj6283,loj6284,loj6285)

    前言 zjoi考差了,码一些分块题缓解一下心情 壹 数列分块入门 1[loj6277] 题目大意:区间加,单点查 直接分块,区间加时完全覆盖的块打tag,边界块暴力重构 块大小设为n\sqrt nn​ ...

  2. 3位水仙花数计算pythonoj_Python解答蓝桥杯省赛真题之从入门到真题

    若发现此文章消失,则是在等待审核中,稍等一会儿即可显示,谢谢. 另外,我会尽量晚上上传更新题目. 此文章太长了,导致MD编辑器很卡,另写了一篇接续 传送门 Python解答蓝桥杯省赛真题之从入门到真题 ...

  3. LeetCode《编程能力入门》刷题笔记(34 题全)

    LeetCode<编程能力入门>刷题笔记 基本数据类型 1. 在区间范围内统计奇数数目 _解法1:暴力迭代 _解法2:数学(找规律) 2. 去掉最低工资和最高工资后的工资平均值 _解法1: ...

  4. LeetCode《算法入门》刷题笔记(31 题全)

    LeetCode<算法入门>刷题笔记(31 题全) 二分查找 1. 二分查找 _解法1:二分搜索(迭代) 解法2:二分搜索(递归) 2. 第一个错误的版本 _解法1:二分 3. 搜索插入位 ...

  5. html css导航栏字体图标,HTML+CSS入门之两种图标字体库

    本篇教程介绍了HTML+CSS入门之两种图标字体库,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < ## 0. 前言 比较基础的图标加载:和块元素的背景background ...

  6. 文具订购(【CCF】NOI Online能力测试 入门组第一题)

    [题目描述] 小明的班上共有 n 元班费,同学们准备使用班费集体购买 3 种物品: 1.圆规,每个 7 元. 2.笔,每支 4 元. 3.笔记本,每本 3 元. 小明负责订购文具,设圆规,笔,笔记本的 ...

  7. NOIP历年第二轮入门组真题集合

    NOIP历年第二轮入门组真题集合 年份 题目 题解链接 2000 T1-计算器的改良 T2- 税收与补贴问题 T3-乘积最大 T4-单词接龙 题解链接 2001 T1-数的记数 T2-最大公约数和最小 ...

  8. 华为OD机试2022.11.04 只记得两题

    OD机试两题简单,一题中等:时间来不及只能做简单的两个. 第一题探索地块建立给一块n*m的地块,相当于n*m的二维数组,每个元素的值表示这个小地块的发电量:求在这块地上建立正方形的边长为c的发电站,发 ...

  9. 软件测试工程师入门面试理论题库(一)

    软件测试工程师入门面试理论题库 1,软件测试的定义:通过运行被测试的软件,发现软件的问题和错误来对软件进行质量评估. 2,测试的范围:程序,程序所用的数据及相关文档. 3,测试的风险:进度风险,质量风 ...

  10. Android加密 看雪,Android加密与解密入门两题

    写在最前面 本次题目来自看雪2w班9月题.密码学一直是安全的基础,Android安全也不例外,这次9月份的题分别从java层和C层考察了密码学中常用的对称加密.hash函数以及一些基础的编码,但是不是 ...

最新文章

  1. 粤桂协作消费对接活动 农业大健康·李喜贵:功能性农业合作研究
  2. Android 系统构架(转)
  3. JSP学习总结:2006
  4. Android系统性能优化(68)---绘制优化
  5. Field ‘id‘ doesn‘t have a default value错误解决方法
  6. 检测编码并制作一切UTF-8
  7. 贺利坚老师汇编课程43笔记:DUP用来数据的重复duplicate
  8. 深入理解JVM之JVM内存区域与内存分配
  9. 笨办法学python在线阅读_『笨办法』学Python 3
  10. shareplex三点同步配置
  11. Newtonsoft.Json.Compact
  12. sha256是什么算法,sha256的安全性,sha256算法详解
  13. 04 用户权限管理 实验报告
  14. ivx动效按钮 基础按钮制作 02
  15. 什么是shapefile文件
  16. 宇视NVR设备接入EasyCVR平台,离线后无法上线该如何解决?
  17. catia曲面设计从入门到精通_CATIA V5曲面设计从入门到精通
  18. 计算机科学与技术研究生课表,计算机科学与技术专业2018级研究生课程表.doc
  19. keil symbol外部符号定义
  20. Linux格式化磁盘并挂载分区

热门文章

  1. erp系统原理和实施第五版pdf_ERP系统实施费用!
  2. 无法使用prop_Adobe Launch配置流量变量(Prop)
  3. 解析docx C语言,c语言习题解析【含基础知识讲解】.docx
  4. 简单的网站项目开发流程 .
  5. 关于extern的使用
  6. LeetCode 6罗马数字转整数
  7. 三目运算符?:结合性
  8. php经过twemproxy无法delete后端memcache值的解决方法
  9. 文件打印服务器解决方案
  10. Alpha和索引色透明