链接: 1018 锤子剪刀布 (20 分).
题目描述
参考代码
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int equalnum=0,alosenum=0,awinnum=0,blosenum=0,bwinnum=0,a1=0,a2=0,a3=0,b1=0,b2=0,b3=0;
char a,b;
for(int i=0;i<n;i++)
{
cin>>a>>b;
if(a=='J'&&b=='J')
equalnum++;
if(a=='J'&&b=='C')
{
alosenum++;
bwinnum++;
b2++;
}
if(a=='J'&&b=='B')
{
blosenum++;
awinnum++;
a1++;
}
if(a=='C'&&b=='J')
{
blosenum++;
awinnum++;
a2++;
}
if(a=='C'&&b=='C')
{
equalnum++;
}
if(a=='C'&&b=='B')
{
alosenum++;
bwinnum++;
b3++;
}
if(a=='B'&&b=='J')
{
alosenum++;
bwinnum++;
b1++;
}
if(a=='B'&&b=='C')
{
blosenum++;
awinnum++;
a3++;
}
if(a=='B'&&b=='B')
{
equalnum++;
}
}
cout<<awinnum<<" "<<equalnum<<" "<<alosenum<<endl;
cout<<bwinnum<<" "<<equalnum<<" "<<blosenum<<endl;
if(a3>=a2 && a3>=a1)
cout << "B ";
else if(a2>=a1)
cout << "C ";
else
cout << "J ";
if(b3>=b2 && b3>=b1)
cout << "B";
else if(b2>=b1)
cout << "C";
else
cout << "J";
// if(a3>=a2>=a1||a3>=a1>=a2)
// cout<<"B"<<" ";
// else if(a2>=a1)
// cout<<"C"<<" ";
// else
// cout<<"J"<<" ";
// if(b3>=b2>=b1||b3>=b1>=b2)
// cout<<"B";
// else if(b2>=b1)
// cout<<"C";
// else
// cout<<"J";
}
解题思路
对于每种猜拳情况需要每个进行判断并记录下来即可,最后判断出哪种拳的胜率较大时,用注释掉的方法不能通过所有测试,还没有想明白原因,先记录下来,我再想一想,也欢迎大家分享自己的观点。