題目:
hzf 最近迷上 QQ 遊戲歡樂鬥牛。
鬥牛的規則如下,遊戲開始的時候,每位玩家發 張撲克牌,每張牌都是 A-K 中的一張牌( 表示 A, 表示對應的牌,-J,-Q,-K)。
每張牌都有一個點數, 分別對應其點數, 對應點數 。
牌型分爲以下 種情況,牌型的優先級按照給定從上到下。
- 四炸—— 張牌中有 張牌相同 ,優先級最高。
- 五小牛——即五張牌點數都小於 ,且 張牌的點總數和小於或等於 ,優先級次之。
- 牛牛——其中 張牌的點數和是 的整數倍,另外 張牌的點數和是 的整數倍。
- 牛 ——其中 張牌的點數和是 的整數倍,另外 張牌的點數和對 取模爲 。
- 以上情況都不是,就是無牛。
hzf 要根據自己的牌型來決定自己的下注的倍數,但是 hzf 總是不能看出他的牌型,你能寫一個程序幫助他嗎。
輸入格式:
一行輸入 個空格隔開的整數。
輸出格式:
若牌型爲四炸,輸出一行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語句來判斷五種情況,根據不同的情況輸出
#include<iostream>
using namespace std;
int main(void)
{
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++)
{
int N = 0;
for (int j = 0; j < 5; j++)
{
if (a[i] == a[j])
N++;
if (N == 4)
{
cout << "quadra bomb orz" << endl;
system("pause");
return 0;
}
}
}
for (int i = 0; i < 5; i++)
{
if (a[i] >= 5)
flag = 1;
sum = sum + a[i];
}
if (flag == 0 && sum <= 10)
{
cout << "penta calf" << endl;
system("pause");
return 0;
}
if ((sum % 10) == 0)
{
for (int i = 0; i < 5; i++)
{
for (int j = i+1; j < 5; j++)
{
if (((a[i] + a[j]) % 10) == 0)
{
cout << "you can you up" << endl;
system("pause");
return 0;
}
}
}
}
for (int i = 0; i < 5; i++)
{
for (int j = 0; 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 << endl;
system("pause");
return 0;
}
}
}
cout << "gg" << endl;
system("pause");
return 0;
}