原题链接
思路:
甲对乙胜负情况表:
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
0 | 平 | 输 | 赢 | 赢 | 输 |
1 | 赢 | 平 | 输 | 赢 | 输 |
2 | 输 | 赢 | 平 | 输 | 赢 |
3 | 输 | 输 | 赢 | 平 | 赢 |
4 | 赢 | 赢 | 输 | 输 | 平 |
在完成对题目要求的输入之后,我的思路是把A和B所有的出拳情况存到两个string中即str1、str2,然后遍历str1,对str2判断,计算得分。
int main() {
int n, l1, l2, g1 = 0, g2 = 0;
sfd(n);
sfd(l1);
sfd(l2);
getchar();
char ch;
string s1, s2, str1, str2;
for( int i=0; i<l1; i++ ) {
cin >> ch;
s1 += ch;
}
for( int i=0; i<l2; i++ ) {
cin >> ch;
s2 += ch;
}
// cout << s1 << " " << s2;
// pfn;
int cnt = 0;
for( int i=0, j=0; i<=n; i++, j++ ) {
str1 += s1[j];
if( j==l1-1 ) {
j = -1;
}
}
for( int i=0, j=0; i<=n; i++, j++ ) {
str2 += s2[j];
if( j==l2-1 ) {
j = -1;
}
}
// cout << str1 << " " << str2;
// pfn;
for( int i=0; i<n; i++ ) {
if( str1[i]=='0' ) {
if( str2[i]=='1'||str2[i]=='4' ) {
g2++;
}else if( str2[i]=='2'||str2[i]=='3' ) {
g1++;
}
}else if( str1[i]=='1' ) {
if( str2[i]=='2'||str2[i]=='4' ) {
g2++;
}else if( str2[i]=='0'||str2[i]=='3' ) {
g1++;
}
}else if( str1[i]=='2' ) {
if( str2[i]=='0'||str2[i]=='3' ) {
g2++;
}else if( str2[i]=='1'||str2[i]=='4' ) {
g1++;
}
}else if( str1[i]=='3' ) {
if( str2[i]=='0'||str2[i]=='1' ) {
g2++;
}else if( str2[i]=='2'||str2[i]=='4' ) {
g1++;
}
}else if( str1[i]=='4' ) {
if( str2[i]=='2'||str2[i]=='3' ) {
g2++;
}else if( str2[i]=='0'||str2[i]=='1' ) {
g1++;
}
}
}
pfd(g1);
pfk;
pfd(g2);
pfn;
return 0;
}