HZF爱斗牛

hzf 最近迷上 QQ 游戏欢乐斗牛。
斗牛的规则如下,游戏开始的时候,每位玩家发 张扑克牌,每张牌都是 A-K 中的一张牌( 1表示 A, 2-10表示对应的牌,11 -J,12 -Q,13 -K)。 每张牌都有一个点数, 1-10分别对应其点数, 11-13对应点数 10。
牌型分为以下 5种情况,牌型的优先级按照给定从上到下。

  1. 四炸—— 5张牌中有 4 张牌相同 ,优先级最高。
  2. 五小牛——即五张牌点数都小于5 ,且 5张牌的点总数和小于或等于 10,优先级次之。
  3. 牛牛——其中 3张牌的点数和是 10 的整数倍,另外 2 张牌的点数和是 10 的整数倍。
  4. 牛 x(1,2,3…9)——其中 3 张牌的点数和是 10 的整数倍,另外 2 张牌的点数和对 10取模为 x。
  5. 以上情况都不是,就是无牛。
    hzf 要根据自己的牌型来决定自己的下注的倍数,但是 hzf 总是不能看出他的牌型,你能写一个程序帮助他吗。
    输入格式
    一行输入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
    代码:
    用一个数组来存放数据,然后再用if来判断5种情况,判断牛x的时候,不会了,参考了一下AC的代码
#include<iostream>
using namespace std;
int main()
{
 int a[10];
 int n, flag = 0, sum = 0;
 //cout << "请输入五个数:";
 for (int i = 0; i < 5; i++)
 {
  cin >> n;
  if (n > 10)
   n = 10;
  a[i] = n;
 }
 for (int i = 0; i < 5; i++)
 {
  for (int j = i+1; j < 5; j++)
  {
   if (a[i] == a[j])
    sum++;
   if (sum == 4)
   {
    cout << "quadra bomb orz" << endl; 
    return 0;
   }
  }
 }
 for (int i = 0, sum = 0; i < 5; i++)
 {
  if (a[i] >= 5)
   flag = 1;
  sum = sum + a[i];
 }
 if (flag == 0 && sum <= 10)
 {
  cout << "penta calf" << endl;
  return 0;
 }
 if ((sum % 10) == 0)
 {
  for (int i = 0; i < 5; i++)
  {
   for (int j = 0; j < 5; j++)
   {
    if (i == j)
     continue;
    if (((a[i] + a[j]) % 10) == 0)
    {
     cout << "you can you up";
     return 0;
    }
   }
  }
 }
 for (int i = 0; i < 5; i++)
 {
  for (int j = i+1; j < 5; j++)
  {
   if (i == j)
    continue;
   if (((sum - a[i] - a[j]) % 10) == 0)
   {
    cout << "too young too simple:calf " << (a[i] + a[j]) % 10;
                //system("pause");
    return 0;
   }
  }
 }
 cout << "gg" << endl;
 return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43612495/article/details/86509652