其他分享
首页 > 其他分享> > 1253: [蓝桥杯2015初赛]牌型种数

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

作者:互联网

题目描述:

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

输出格式:

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

思路:

代码:

#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;
}

标签:count,13,return,int,sum,牌型,初赛,蓝桥
来源: https://blog.csdn.net/qq_61821747/article/details/122557726