洛谷P1328 生活大爆炸版石头剪刀布

原题链接
思路:
甲对乙胜负情况表:

01234
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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值