模拟—生活大爆炸版石头剪刀布
程序员文章站
2023-12-27 16:04:27
...
题目:题目来源
这道题感觉还好,整个过程中犯的错误是写代码习惯用之前写过的部分代码,导致有些微妙错误难以发现,,细心再细心。
不多说,代码如下:
/*
* 日期:2020.02.23
* 作者:城主
* 题目:洛古普及题-生活大爆炸版石头剪刀布
* 思路:保存猜拳次数作为两个猜拳者比较的次数,这里可以用两个数组分别
* 保存猜拳者出拳周期规律,可以用一个函数来判断哪个赢,作为统计
* 分数的标准。
*/
import java.util.Scanner;
public class Test {
static int Judege(int a,int b)
{
int v=1;
int f=-1;
int e=0;
if(a==0)
{
if(b==1||b==4) return f;
else if(b==2||b==3) return v;
else return e;
}
else if(a==1)
{
if(b==2||b==4) return f;
else if(b==0||b==3) return v;
else return e;
}
else if(a==2)
{
if(b==0||b==3) return f;
else if(b==1||b==4) return v;
else return e;
}
else if(a==3)
{
if(b==0||b==1) return f;
else if(b==2||b==4) return v;
else return e;
}
else
{
if(b==2||b==3) return f;
else if(b==1||b==0) return v;
else return e;
}
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int num=scan.nextInt();
int a_num=scan.nextInt();
int b_num=scan.nextInt();
int a_array[]=new int[a_num];
int b_array[]=new int[b_num];
//input
for(int i=0;i<a_num;i++)
{
a_array[i]=scan.nextInt();
}
for(int i=0;i<b_num;i++)
{
b_array[i]=scan.nextInt();
}
//deal with
int a_score=0;
int b_score=0;
int temp;
for(int i=0;i<num;i++)
{
temp=Judege(a_array[i%a_num],b_array[i%b_num]);
if(temp==1)a_score++;
else
{
if(temp==-1)b_score++;
}
}
System.out.printf("%d %d",a_score,b_score);
}
}