44 判斷撲克牌是否是順子

2021-07-04 05:28:10 字數 1090 閱讀 9309

題目:

從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2-10為數字本身,a為1,j為11,q為12,k為13,而大小王可以看成任意數字。

首先應該對該問題做資料抽象,5張普通牌可以用數字代替,大小王是特殊牌,我們可以用 0 代替。將大小王和普通牌分離。

檢查是否是順子:

首先應該進行排序,然後統計 0 的個數, 最後統計相鄰數字之間的間隔個數。

如果 0 的次數 大於等於 間隔的次數,則是順子,否則不是順子。另外,如果出現非0外的相同的數,即對子,則不是順子。

如: 中 0 的個數為 1, 間隔個數為 1,則是順子;

中 0 的個數為 1, 間隔個數為 2,則不是順子;

#include 

#include

using

namespace

std;

bool iscontinuous(int nums, int length)

// 統計間隔

int prev = nums[i++];

for (; i < length; i++)

if (zero_counts >= gap_counts)

return

true;

else

return

false;

}int main() ;

int nums2 = ;

int nums3 = ;

int nums4 = ;

cout

<< iscontinuous(nums1, len) << endl;

cout

<< iscontinuous(nums2, len) << endl;

cout

<< iscontinuous(nums3, len) << endl;

cout

<< iscontinuous(nums4, len) << endl;

}

輸出結果:

110

0[finished in 0.7s]

撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子.ll不高興了,他想了想,決定大 小...

撲克牌順子

題目描述 ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子 ll不高興了,他想了想,...

撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子 ll不高興了,他想了想,決定大 小...