XDU 1044 炸金花 (模擬)

2021-07-11 12:19:13 字數 1423 閱讀 3346

時間限制: 1 sec  

記憶體限制: 128 mb

[ 提交][

狀態][

討論版]

炸金花是乙個風靡全球的撲克遊戲,不少人因為這個遊戲發了家,而更多的人則輸得傾家蕩產。為了幫助賭徒們戒掉它,現在決定派你去寫乙個程式,幫助賭徒們更好的認識這個遊戲。

炸金花在這裡被簡化成這樣乙個情況:每乙個人都會得到隨機派發的三張牌(每張牌的點數為整數區間[1,9]中的某個數,點數相同的牌最多只有4張),然後比較大小。

比較大小的方式是這樣的:

①豹子:即三張點數一樣的牌,若雙方都為豹子,則點數大者為大,豹子大於任何其他情況;

②順子:即三張點數連續遞增的牌,比如(4,5,6),(1,2,3),若雙方都是順子,點數大者為大,順子大於對子和單張;

③對子:即兩張點數一樣的牌帶一張單牌,比如(1,1,4),(2,2,5),若雙方都是對子,則成對的牌點數大者為大,如果那一對也一樣,則比較單張的大小,對子大於單張;

④單張:即三張牌不是上述的三種。單張的比較大小方式是,先比較點數最大的,再比較點數第二大的,再比較點數第三大的。

需要注意的是乙個特殊情況,那就是,2,3,5比大部分牌都小,但是比豹子大。

你的任務是,對於對手的給定的一種情況,告訴賭徒,有多少種情況可以贏對方。(4,5,6及5,4,6這樣算一種情況)

有多組輸入資料,第一行為乙個數字t,代表有t組輸入資料(0≤1000)。

接下來為t組資料,每組資料佔一行,為3個整數,表示對手的拿牌情況。

對於每組資料,在一行上輸出乙個整數,表示贏得對手的情況數。

2

9 9 9

7 8 9

1

9

直接統計即可,後面三種情況都把 順子 給忘了,wa了好久才想到...

#include #include using namespace std;

int t,card[5];

int main()

else if(card[1]==card[0]+1&&card[2]==card[1]+1)

else if(card[1]==card[2])

else if(card[0]==card[1])

else

}//最大==card[2]

if(card[2]-card[1]>1)

for(int i=card[2]-2;i>card[1];--i)

for(int i=card[1]-(card[2]-card[1]==1?2:1);i>card[0];--i)//列舉單張最小牌

++ans;

if(card[0]==2&&card[1]==3&&card[2]==5)

printf("%d\n",ans);}}

return 0;

}

1044 火星數字

火星人是以13進製計數的 例如地球人的數字 29 翻譯成火星文就是 hel mar 而火星文 elo nov 對應地球數字 115 為了方便交流,請你編寫程式實現地球和火星數字之間的互譯。輸入格式 輸入第一行給出乙個正整數n 100 隨後n行,每行給出乙個 0,169 區間內的數字 或者是地球文,或...

1044 火星數字

時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 火星人是以13進製計數的 例如地球人的數字 29 翻譯成火星文就是 hel mar 而火星文 elo nov 對應地球數字 115 為了方便交流,請你編寫程式實現地球和火...

1044 火星數字

火星人是以13進製計數的 地球人的0被火星人稱為tret。地球人數字1到12的火星文分別為 jan,feb,mar,apr,may,jun,jly,aug,sep,oct,nov,dec。火星人將進製以後的12個高位數字分別稱為 tam,hel,maa,huh,tou,kes,hei,elo,syy...