计蒜客-15 HZF 爱斗牛

hzf 最近迷上 QQ 游戏欢乐斗牛。

斗牛的规则如下,游戏开始的时候,每位玩家发 5 5 5 张扑克牌,每张牌都是 A-K 中的一张牌( 1 1 1 表示 A, 2 − 10 2-10 210 表示对应的牌, 11 11 11-J, 12 12 12-Q, 13 13 13-K)。

每张牌都有一个点数, 1 − 10 1-10 110 分别对应其点数, 11 − 13 11-13 1113 对应点数 10 10 10

牌型分为以下 5 5 5 种情况,牌型的优先级按照给定从上到下。

  1. 四炸—— 5 5 5 张牌中有 4 4 4 张牌相同 ,优先级最高。

  2. 五小牛——即五张牌点数都小于 5 5 5,且 5 5 5 张牌的点总数和小于或等于 10 10 10,优先级次之。

  3. 牛牛——其中 3 3 3 张牌的点数和是 10 10 10 的整数倍,另外 2 2 2 张牌的点数和是 10 10 10 的整数倍。

  4. x ( x = 1 , 2 , 3 … 9 ) x(x=1,2,3\ldots 9) x(x=1,2,39)——其中 3 3 3 张牌的点数和是 10 10 10 的整数倍,另外 2 2 2 张牌的点数和对 10 10 10 取模为 x x x

  5. 以上情况都不是,就是无牛。

hzf 要根据自己的牌型来决定自己的下注的倍数,但是 hzf 总是不能看出他的牌型,你能写一个程序帮助他吗。

输入格式

一行输入 5 5 5 个空格隔开的整数。

输出格式

若牌型为四炸,输出一行quadra bomb orz

若为五小牛,输出一行penta calf

若为牛牛,输出一行you can you up

若为牛 x,输出一行too young too simple:calf x

若为无牛,输出一行gg

样例输入

10 10 10 1 1

样例输出

too young too simple:calf 2

样例输入

10 10 10 10 9

样例输出

quadra bomb orz

列举每种情况,根据条件判断输出

#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
	int a[10];
	for(int i=0;i<=4;i++)
	{
		int l;
		cin>>l;
		if(l>=11)//如果 是J Q K 
		l=10;//对应点数为10 
		a[i]=l;
	}
	for(int i=0;i<=4;i++)
	{
		int cnt=0;//判断相等的次数 
		for(int m=0;m<=4;m++)
		{
			if(a[i]==a[m])//如果相等 
			cnt++;//数目增加 
			if(cnt==4)//如果相等的数目是4 
			{
				cout<<"quadra bomb orz";//输出 
				return 0;
			}
	    }
	} 
		int ca=1;//判断 
		int sum=0;
		for(int m=0;m<=4;m++)
		{ 
		    if(a[m]>=5)//如果有点数>=5 
			{
				ca=0;//判断情况 
			} 
			sum+=a[m];//累加和 
    	} 
		if((sum<=10)&&(ca==1))//判断和<=10,且每个点数都<=5,即ca=1; 
		{
			cout<<"penta calf";
			return 0; 
		}
		//注意此种情况是 三个点之和与两个点数之和各是10 的整数倍,只需判断全部和与其中一种情况 
		if((sum%10)==0)//5个点数和是10的整数倍 
		 {
		 	for(int m=0;m<=4;m++)
		 	{
		 		for(int n=0;n<=4;n++)
		 		{
		 			if(m==n)
		 			continue;
		 			if(((a[m]+a[n])%10)==0)//其中两个点数和是10 的整数倍,
		 			{
		 				cout<<"you can you up";
		 				return 0;
		 			}
		 		}
		 }	}
		 	for(int m=0;m<=4;m++)
		 	{
		 		for(int n=0;n<=4;n++)
		 		{
		 			if(m==n)
		 			continue;
		 			if(((sum-a[n]-a[m])%10)==0)//其中三个点之和是10 的整数倍 
		 			{
		 				cout<<"too young too simple:calf"<<" "<<(a[m]+a[n])%10 ;//(a[m]+a[n])mod10=x,输出 
		 				return 0;	
		 			}
		 		}
		 	}	
		 
	 cout<<"gg";
	 return 0; 
 } 

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值