時間限制: 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個整數,表示對手的拿牌情況。
對於每組資料,在一行上輸出乙個整數,表示贏得對手的情況數。
29 9 9
7 8 9
19
直接統計即可,後面三種情況都把 順子 給忘了,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...