1253: [蓝桥杯2015初赛]牌型种数

题目描述:

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

输出格式:

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

思路:

1253: [蓝桥杯2015初赛]牌型种数

代码:

#include<stdio.h>
int sum=0,count=0;
void dfs(int u)
{
	if(sum>13||u>13)//u是牌类型1,2,..,j,q,k。sum是牌数之和;
	return ;//二者都不能超过13,超过就不符合;
	if(sum==13)
	{
		count++;//等于13了就是一种组合类型;
		return ;
	}
	for(int i=0;i<=4;i++)
	{
		sum+=i;
		dfs(u+1);
		sum-=i;//减i的意思是,假如刚刚加的是1这种可能,现在把1减去,在进入循环加上同等级2这种可能
	}
}
int main()
{
	dfs(0);
	printf("%d",count);
	return 0;
}

上一篇:C语言程序设计100例之(52):数字序列


下一篇:目录和文件管理