生活大爆炸版剪刀石头布

图片说明
图片说明

import java.io.IOException;
import java.util.*;

public class Main {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int na = sc.nextInt();
        int nb = sc.nextInt();
        int Na[] = new int[na];
        int Nb[] = new int[nb];
        int f[][]= {{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}};
        for (int i = 0; i < na; i++) {
            Na[i] = sc.nextInt();
        }
        for (int i = 0; i < nb; i++) {
            Nb[i] = sc.nextInt();
        }
        int counta = 0,countb = 0;
        for (int i = 0; i < n; i++) {
            if(f[Na[i % na]][Nb[i % nb]] > 0)counta++;
            else if (f[Na[i % na]][Nb[i % nb]] < 0)
                countb++;
        }
        System.out.println(counta + " " + countb);

    }
}

其实很巧妙,自己想得比较复杂了,用一个二维数组把两个人出的结果都装进去,下标对应然后比较0的大小就可以得出结果,但是不能直接else,因为平局也会计算在else里面,得出的结果是不正确的。这里还有一个巧妙的地方就是直接用i整除na和nb得到余数,也就是可以一直让他们自己的周期循环,等价于i大于na的时候减去na,一个道理。

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务