【蓝桥杯】第六届-7-牌型种数

题目

小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

请填写该整数,不要填写任何多余的内容或说明文字。

分析

一共是记号为A,2,3,4,5,6,7,8,9,10,J,Q,k的十三个元素,每个元素的情况可能是0,1,2,3,4。这十三个元素的和为13即可。

答案

3598180

代码

利用递归

public class Seven {
    static int sum = 0; // 记录手中的牌的数目
    static int ans = 0; // 记录结果
    private static void cal(int n){
        if (sum > 13) return;
        if (n==14){ // 13种牌型以及全部搜索
            if (sum == 13){
                ans++;
                return;
            }
        }else{
            for(int i = 0; i<5; i++){
                sum+=i;
                cal(n+1);
                sum-=i; // 还原
            }
        }
    }
    
    public static void main(String[] args) {
        cal(1); // 从第一个牌搜索
        System.out.println(ans);
    }
}

你可能感兴趣的:(【蓝桥杯】第六届-7-牌型种数)