欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 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);

	}

}

相关标签: Java升级打怪篇

上一篇:

下一篇: