小明被劫持到X賭城,被迫與其他3人玩牌。
一副撲克牌(去掉大小王牌,共52張),均勻發給4個人,每個人13張。
這時,小明腦子裡突然冒出一個問題: 如果不考慮花色,隻考慮點數,也不考慮自己得到的牌的先後順序,自己手裡能拿到的初始牌型組合一共有多少種呢?
枚舉牌數的話太大,我們枚舉每個牌
代碼:PPt
#include <iostream>
using namespace std;
int a[14];
int ans = 0;
void dfs(int x, int rest) {
if(x == 13) {//假設枚舉到現在剛好一張不剩,證明你剛剛枚舉的是對的
if(rest == 0)
ans++;
return;
}
for(int i = 0; i <= 4 && i <= rest; i++) {//枚舉現在你牌的個數,還要小于目前的張數
a[x] = i;
dfs(x+1, rest - i);
}
}
int main() {
dfs(0, 13);
cout << ans << endl;
return 0;
}
轉載于:https://www.cnblogs.com/jweie/p/8365557.html