乙级真题:C++:锤子剪刀布"/>
PAT乙级真题:C++:锤子剪刀布
题目描述
大家应该都会玩“锤子剪刀布”的游戏:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入描述
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有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
代码
#include <iostream>
using namespace std;
int main() {int n;cin>>n;int ca[]={0,0,0};// 胜 平 负 int cb[]={0,0,0};// 胜 平 负 int awin[]={0,0,0};// B C Jint bwin[]={0,0,0};// B C Jfor(int i=0; i<n; i++) {char a,b;cin>>a>>b;if(a=='B') {if(b=='B') {ca[1]++;cb[1]++;}if(b=='C') {ca[0]++;cb[2]++;awin[0]++; }if(b=='J') {cb[0]++;ca[2]++;awin[2]++;}}if(a=='C') {if(b=='B') {ca[2]++;cb[0]++;bwin[0]++;}if(b=='C') {ca[1]++;cb[1]++;}if(b=='J') {ca[0]++;cb[2]++;awin[1]++;}}if(a=='J') {if(b=='B') {ca[0]++;cb[2]++;awin[2]++;}if(b=='C') {cb[0]++;ca[2]++;bwin[1]++;}if(b=='J') {ca[1]++;cb[1]++;}}}cout<<ca[0]<<" "<<ca[1]<<" "<<ca[2]<<endl;cout<<cb[0]<<" "<<cb[1]<<" "<<cb[2]<<endl;if(awin[0]>=awin[1]&& awin[0]>=awin[2]) {cout<<"B ";} else if(awin[1]>=awin[0] && awin[1]>=awin[2]) {cout<<"C ";} else {cout<<"J ";}if(bwin[0]>=bwin[1]&& bwin[0]>=bwin[2]) {cout<<"B";} else if(bwin[1]>=bwin[0] && bwin[1]>=bwin[2]) {cout<<"C";} else {cout<<"J";}
}
更多推荐
PAT乙级真题:C++:锤子剪刀布
发布评论