CCF-训练50题-NO.23-锤子剪刀布
2017-11-16 23:51
423 查看
题目描述
大家应该都会玩“锤子剪刀布”的游戏。现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。输出
输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。代码
#include <iostream> using namespace std; int jiab=0; int jiac=0; int jiaj=0; int yib=0; int yic=0; int yij=0; int bjd(char a,char b){//0甲赢 1平 2 乙赢 if (a=='C'){ if (b=='J') { jiac++; return 0; } else if (b=='C') return 1; else if (b=='B') { yib++; return 2; } } else if (a=='B'){ if (b=='J') { yij++; return 2; } else if (b=='C') { jiab++; return 0; } else if (b=='B') return 1; } else if (a=='J'){ if (b=='J') return 1; else if (b=='C') { yic++; return 2; } else if (b=='B') { jiaj++; return 0; } } } int main(){ int n; int jia=0; int yi=0; int ping=0; cin>>n; char *p=new char[n*2]; for (int i=0;i<n;i++){ cin>>p[i*2+0]>>p[i*2+1]; } for (int i=0;i<n;i++){ int res=bjd(p[i*2+0], p[i*2+1]); if (res==0) jia++; if (res==1) ping++; if (res==2) yi++; } cout<<jia<<" "<<ping<<" "<<yi<<endl; cout<<yi<<" "<<ping<<" "<<jia<<endl; int jia1=jiab-jiaj; int jia2=jiac-jiaj; if (jia1<0&&jia2<0) cout<<"J"<<" "; else if (jia1>=jia2) cout<<"B"<<" "; else cout<<"C"<<" "; int yi1=yib-yij; int yi2=yic-yij; if (yi1<0&&yi2<0) cout<<"J"<<" "; else if (yi1>=yi2) cout<<"B"<<" "; else cout<<"C"<<" "; }
思路很简单,本人的封装思维很强所以……
相关文章推荐
- CCF-训练50题-NO.15-选美比赛
- CCF-训练50题-NO.16-字符串数字置换
- CCF-训练50题-NO.17-写出来吧
- CCF-训练50题-NO.18-成绩大排队
- CCF-训练50题-NO.19-说反话
- CCF-训练50题-NO.1-数塔问题
- CCF-训练50题-NO.20-A+B和C比大小
- CCF-训练50题-NO.3-数字排序问题
- CCF-训练50题-NO.21-部分A+B
- CCF-训练50题-NO.29-最少钱币数
- CCF-训练50题-NO.4-相邻数对问题
- CCF-训练50题-NO.22-A除以B
- CCF-训练50题-NO.30-蛇形矩阵
- CCF-训练50题-NO.5-画图
- CCF-训练50题-NO.24-个位数统计
- CCF-训练50题-NO.6-字符串匹配问题
- CCF-训练50题-NO.25-组个最小数
- CCF-训练50题-NO.7-日历问题
- CCF-训练50题-NO.26-在霍格沃茨找零钱
- CCF-训练50题-NO.8-生理周期