pat 乙级 1018 锤子剪刀布

2023-12-17 09:44:46

在这里插入图片描述
在这里插入图片描述

解题思路,这题你硬比也可以,用技巧减少比较也可以,总共有九种情况 去掉 都相同的 还有6种,我的想法是这样 把 B C J 转换成了0 1 2,这样我们只要看他们大小就行,如果前面的比后面的小并且只差1,那就是前面的赢了,如果相差2就是后面的赢了,这样就把比较变成了4种。。都可以

c语言版本:

#include<stdio.h>
char output(int *jia)
{
	  char c='B';
	 int count=jia['B'];
	 if(count<jia['C'])
	 {
	 	c='C';
		count=jia['C']; 
	 }
	 if(count<jia['J'])
	 {
	 	c='J';
	 }
	return c;
}
int main()
{
	int n,jia_w=0,jia_ping=0,yi_w=0;
	char jia_c,yi_c;
	int  jia[80]={0};
	int yi[80]={0};
	scanf("%d",&n); 
	while(n--)
	{
		scanf(" %c %c",&jia_c,&yi_c);
		if(jia_c==yi_c)
		{
			jia_ping++;
		}
		else
		{
			int jia_i=(jia_c-'A')%9;
			int yi_i=(yi_c-'A')%9;
			if(jia_i>yi_i)
			 if(jia_i-yi_i==1)
			   yi_w++,yi[yi_c]++;
			   else
			   jia_w++,jia[jia_c]++;
			else
			if(jia_i<yi_i)
			if(yi_i-jia_i==1)
			jia_w++,jia[jia_c]++;
			else
			yi_w++,yi[yi_c]++;
		}
		
	 } 
	 printf("%d %d %d\n",jia_w,jia_ping,yi_w);
	 printf("%d %d %d\n",yi_w,jia_ping,jia_w);
	 char c=output(jia);
	 printf("%c ",c);
	 c=output(yi);
	 printf("%c\n",c);	
	return 0;
}

python版本略:大体思路一样 无非再用个字典

文章来源:https://blog.csdn.net/qq_44063802/article/details/135033922
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。