- 小明被劫持到X赌城,被迫与其他3人玩牌。
- 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
- 这时,小明脑子里突然冒出一个问题:
- 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿
- 到的初始牌型组合一共有多少种呢?
思路:其实这题跟全排列的实现差不多。因为点数相同时有四种不同的花色,那么我们每次都是按照点数来取牌,每次取的点数有0~4这几种可能,如果当前取出的牌数已经有13张时说明找到了一种组合.。
public class Question_07 {
//组合的数量
static int count=0;
public static void main(String[] args) {
process(1,0);
System.out.println(count);
}
/**
*
* @param n 表示n是第几张牌(A~K)
* @param sum 当前的牌数
*/
private static void process(int n, int sum) {
if (sum==13){
count++;
return;
}
if (n<14){
//每张点数的牌可取的范围有0~4
for (int i=0;i<5;i++){
sum += i;
process(n+1,sum);
sum -= i;
}
}
}
}
答案:3598180