模拟—生活大爆炸版石头剪刀布

丶灬走出姿态 提交于 2020-02-24 01:19:00

题目:题目来源

这道题感觉还好,整个过程中犯的错误是写代码习惯用之前写过的部分代码,导致有些微妙错误难以发现,,细心再细心。
不多说,代码如下:

/*
 * 日期: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);

	}

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!