如何用最少的空間來比較兩章撲克牌的大小

2021-06-22 20:30:38 字數 574 閱讀 5774

有下面幾個要求:

1)能夠比較兩張撲克牌是否為同一花色,

2)比較兩張撲克牌的大小。

請你設計乙個資料結構來儲存撲克牌的資訊。

最直觀的想法就是用兩個字元型變數儲存一張撲克牌的資訊。有物件導向思想的話會想到用類儲存資訊,定義一些成員函式完成比較等操作。

其實,可以只用6個位就能表示一張撲克牌,其中兩位表示花色0000 0000,0001 0000,0010 0000,0011 0000.這樣就表示四種花色。後四位可以表示十三種數字。

改寫成十六進製制以後就能完成比較等操作。

const char mask = 0x30;

char card1 = 0x2c;

char card2 = 0x06;

char card3 = 0x38;

cout<< ((card1 & mask) == mask);

cout<< ((card2 & mask) == mask);

cout<< ((card3 & mask) == mask);

比較大小也可以增加掩碼位,然後比較後四位的大小即可。

svn diff 來比較任意兩個版本的差異

svn diff r a b比如,以下命令將顯示版本a 相對於版本b 的差異 在中文windows系統中,如果乙個文字檔案是utf 8編碼的,那麼在cmd.exe命令列視窗 所謂的dos視窗 中不能正確顯示檔案中的內容。在預設情況下,命令列視窗中使用的 頁是中文或者美國的,即編碼是中文字符集或者西文...

C 貪心 如何用最少的箭射爆全部氣球

在二維空間中有許多球形的氣球。對於每個氣球,提供的輸入是水平方向上,氣球直徑的開始和結束座標。由於它是水平的,所以y座標並不重要,因此只要知道開始和結束的x座標就足夠了。開始座標總是小於結束座標。平面內最多存在104個氣球。一支弓箭可以沿著x軸從不同點完全垂直地射出。在座標x處射出一支箭,若有乙個氣...

如何用ceres進行兩幀之間的BA優化

學習高博的書已有很長一段時間了,一直看理論,看 而沒有自己親自上手,最近在做ba優化,大部分slam是用g2o進行的,而對於ceres用的很少,由於博主根本看不懂g2o的 風格,個人覺得很無語 其實是博主zz 那咋辦?於是就想乾脆用ceres實現ba優化吧。而關於ceres,其實主要還是殘差的定義了...