hzf 最近迷上 QQ 游戏欢乐斗牛。
斗牛的规则如下,游戏开始的时候,每位玩家发 张扑克牌,每张牌都是 A-K 中的一张牌( 1表示 A, 2-10表示对应的牌,11 -J,12 -Q,13 -K)。 每张牌都有一个点数, 1-10分别对应其点数, 11-13对应点数 10。
牌型分为以下 5种情况,牌型的优先级按照给定从上到下。
- 四炸—— 5张牌中有 4 张牌相同 ,优先级最高。
- 五小牛——即五张牌点数都小于5 ,且 5张牌的点总数和小于或等于 10,优先级次之。
- 牛牛——其中 3张牌的点数和是 10 的整数倍,另外 2 张牌的点数和是 10 的整数倍。
- 牛 x(1,2,3…9)——其中 3 张牌的点数和是 10 的整数倍,另外 2 张牌的点数和对 10取模为 x。
- 以上情况都不是,就是无牛。
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;
}