給麻將遊戲算番數

2021-06-21 20:14:38 字數 1279 閱讀 9657

麻將遊戲越來越受到大家喜愛,也在網路上盛行。本題目是給定一組已經和牌的麻將,編寫乙個函式計算這組麻將的番數。

為簡化題目,假設麻將只有筒子和條子兩種花型,能翻番的規則也只有以下三種,當一組牌中沒有下述三種情況中的一種或多種,

則這組牌為0番,每種番數是加的關係,例如一組牌既有卡2條又有四歸一,則番數為3番。

1.卡2條為一番,即有一局牌是 1條2條3條;

2.四歸一為兩番,即有4張一樣的牌(花色和數字都一樣);

3.巧七對為兩番,即一組牌恰好是7對牌;

一些約定:

1.一組已經和牌的麻將由多局牌組成,一局牌可以是一對牌、3張連續同樣花色的牌、3張一樣的牌、4張一樣的牌。

2.一組已經和牌一般有14張牌,最多可以有18張牌(當有四歸一的時候)。

輸入:一字串表示已經和牌的麻將(由輸入者保證,程式設計人員無需考慮沒有和牌),如1t2t3t,4t5t6t,7t8t9t,1d2d3d,4d4d.說明:

1.」1t」表示1條,t表示條子,前面跟數字幾表示幾條,資料範圍1~9,輸入者保證,程式設計無需考慮輸入規範性;     

2.」4d」表示4筒,d表示筒子,前面跟數字幾表示幾筒,資料範圍是1~9, 輸入者保證,程式設計無需考慮輸入規範性;

3.每局牌之間由』,』隔開,輸入者保證每局牌都是正確的且按照數字由小到大排序,程式設計人員無需判斷每局牌的正確性;

4.一組牌以』.』號結束,由輸入者保證,程式設計人員無需考慮是否有」.」號。

5.輸入保證有番數的牌在一局中,程式設計人員無需考慮排序,即有番數的牌不會分散在多局牌中。

輸出:麻將的番數,整型型別。

樣例輸入:

1t2t3t,4t5t6t,7t8t9t,1d2d3d,4d4d.

樣例輸出:

只輸出番數,且為整型。

這是一道華為機試題,由於大部分難題在輸入判斷,而題中宣告無需判斷,所以其實是一道比較簡單的題目,有問題大家一起交流一下。

**如下:

#include "stdafx.h"

#include#includeusing namespace std;

int _tmain(int argc, _tchar* argv)

{ char cards[50] ;

cout<<"請輸入你的手牌:"<>cards;

char heap[10];

int j=0;

int pair = 0;

int sum=0;

for(int i =0;i

麻將遊戲(BFS)

時間限制 1000ms記憶體限制 256000kb 題目描述 在一種 麻將 遊戲中,遊戲是在乙個有w h格仔的矩形平板上進行的。每個格仔可以放置乙個麻將牌,也可以不放 如圖所示 玩家的目標是將平板上的所有可通過一條路徑相連的兩張相同的麻將牌,從平板上移去。最後如果能將所有牌移出平板,則算過關。這個遊...

SSL P1786 麻將遊戲

尋求最短路徑,但可越出平板 暫時性 相對其他的題目來說比較難,但只要處理好一些細節後,便會從複雜到簡單。我絕對不會說出ta是最小轉彎的 公升級版!include include include include define ll long long using namespace std inlin...

麻將遊戲 廣度優先搜尋

時間限制 1 sec 記憶體限制 128 mb 題目描述 在一種 麻將 遊戲中,遊戲是在乙個有w h格仔的矩形平板上進行的。每個格仔可以放置乙個麻將牌,也可以不放 如圖所示 玩家的目標是將平板上的所有可通過一條路徑相連的兩張相同的麻將牌,從平板上移去。最後如果能將所有牌移出平板,則算過關。這個遊戲中...