您的位置:首页 > 编程语言 > C语言/C++

2015年第六届蓝桥杯C/C++程序设计本科B组省赛 牌型种数(结果填空)

2017-04-01 20:11 176 查看
牌型种数

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

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

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

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

思路:循环遍历每个点数所选择的张数,每个点数最多可以选4张,最少可以选0张即不选,每当牌总数达到13张则计数。

答案:3598180
#include<iostream>
using namespace std;
int sum;
void dfs(int n,int t)
{
if(n>13)return;
if(t>=13)
{
sum++;
return;
}
dfs(n+1,t);//0种
dfs(n+1,t+1);//1种
dfs(n+1,t+2);//2种
dfs(n+1,t+3);//3种
dfs(n+1,t+4);//4种
}
int main()
{
dfs(0,0);
cout<<sum<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐