题解
2023-07-20 20:56:08
发布于:上海
56阅读
0回复
0点赞
思路见注释
#include <stdio.h>
// using namespace std;
// 使用.h而非c前缀导入的头文件无需包含命名空间
const int winned[5][5] = { // 胜负表常量
{0,-1,1,1,-1},
{1,0,-1,1,-1},
{-1,1,0,-1,1},
{-1,-1,1,0,1},
{1,1,-1,-1,0}
};
int main(){
int n, na, nb, a, b, as=0, bs=0;
/* 变量解释:
* n: 游戏回合数
* na:A手势单次轮数
* nb:B手势单次轮数
* a: A当前手势
* b: B当前手势
* as:A当前分数
* bs:B当前分数
*/
scanf("%d%d%d",&n,&na,&nb);
int an[na], bn[nb]; // A手势循环,B手势循环
// 输入手势循环
for(int i=0;i<na;i++) scanf("%d",&an[i]);
for(int i=0;i<nb;i++) scanf("%d",&bn[i]);
// 模拟游戏回合
for(int i=0;i<n;i++){
a = an[i%na]; // 取模得到手势循环索引
b = bn[i%nb]; // 同上
if(winned[a][b]==1) as++; // 查询胜负表加分
else if(winned[a][b]==-1) bs++; // 同上
}
printf("%d %d", as, bs);
return 0;
}
全部评论 1
鎭碱氮
2023-07-20 来自 上海
0难道不煎丹吗
2023-07-20 来自 上海
0*肥肠煎蛋
2023-07-20 来自 上海
0两边星号不匹配,差评
2023-07-20 来自 上海
0
有帮助,赞一个