題目:
從撲克牌中隨機抽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不高興了,他想了想,決定大 小...