AC
2026-06-09 13:18:33
发布于:广东
0阅读
0回复
0点赞
代码核心说明
循环出拳
第 i 轮,A 出拳:A[i % NA]
第 i 轮,B 出拳:B[i % NB]
% 是取余,作用是循环回到开头
胜负规则(0 = 石头,2 = 剪刀,5 = 布)
石头 (0) 胜 剪刀 (2)
剪刀 (2) 胜 布 (5)
布 (5) 胜 石头 (0)
统计比较
统计完 N 轮后,直接比较赢的次数
输出:A / B /draw
#include <iostream>
using namespace std;
int main() {
int N, NA, NB;
cin >> N >> NA >> NB;
int A[105], B[105];
for (int i = 0; i < NA; i++) {
cin >> A[i];
}
for (int i = 0; i < NB; i++) {
cin >> B[i];
}
int winA = 0, winB = 0;
for (int i = 0; i < N; i++) {
int a = A[i % NA];
int b = B[i % NB];
if ((a == 0 && b == 2) || (a == 2 && b == 5) || (a == 5 && b == 0)) {
winA++;
} else if ((b == 0 && a == 2) || (b == 2 && a == 5) || (b == 5 && a == 0)) {
winB++;
}
}
if (winA > winB) {
cout << "A" << endl;
} else if (winB > winA) {
cout << "B" << endl;
} else {
cout << "draw" << endl;
}
return 0;
}
样例测试
输入:
10 3 4
0 2 5
0 5 0 2
输出:
A
总结:
代码100% 正确,可以直接提交
逻辑简单清晰,适合新手学习
完美匹配题目要求和样例


这里空空如也







有帮助,赞一个