小明玩牌

小明被劫持到X賭城,被迫與其他3人玩牌。
一副撲克牌(去掉大小王牌,共52張),均勻發給4個人,每個人13張。
這時,小明腦子裏突然冒出一個問題:
如果不考慮花色,只考慮點數,也不考慮自己得到的牌的先後順序,自己手裏能拿到的初始牌型組合一共有多少種呢?



#include<iostream>
using namespace std;

int sum = 0;//手牌數
int count1 = 0;//方案數

/*深度優先算法*/
void dfs(int kind)//kind表示當前的點數
{
	if (sum > 13 || kind > 13)return;//如果總數大於13直接return
	if (kind == 13 && sum == 13)//如果滿足要求退出循環
	{
		count1++;
		return;
	}
	if (kind <= 13)
	{
		int i;
		for (i = 0; i < 5; i++)//取0張或者取4張
		{
			sum = sum + i;
			dfs(kind + 1);
			sum = sum - i;
		}
	}
}
int main()
{
	dfs(0);
	cout << count1 << endl;
	return 0;
}




3598180

發佈了56 篇原創文章 · 獲贊 82 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章