天天看点

蓝桥杯牌型种数

题目

小明被劫持到X赌城,被迫与其他3人玩牌。

一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。

这时,小明脑子里突然冒出一个问题:

如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?

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

这题暴力for循环也可以做,但是递归简单点,这是从52张牌里取出13张。

先把52张牌分为13堆(A-K),每队四张牌,随意取,如果到最后能取到13张,说明符合条件

答案:3598180

代码如下:

static int sum = 0;
	public static void main(String[] args) {
		s(1,13);
		System.out.println(sum);
	}
	public static void s(int i,int code){
		if(code<0) return;
		if(i==13) {
			if(code<=4)
				sum++;
			return;
		}
		i++;
		for (int j = 0; j <= 4; j++) {
			s(i,code-j);
		}
	}
           

欢迎指正~

继续阅读