题目描述:
小明被劫持到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;
}