牌型种数dfs

来源:互联网 发布:php.ini配置详解 编辑:程序博客网 时间:2024/06/08 00:23
/*6. 牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
请填写该整数,不要填写任何多余的内容或说明文字。
解题思路:循环遍历每个点数所选择的张数,每个点数最多可以选4张,最少可以选0张即不选,每当牌总数达到13张则计数。

答案:3598180*/

#include<stdio.h>int sum=0;int count1=0;void dfs(int kind){    if(sum>13)return;//如果理不清逻辑之间的包含关系,可以不怕麻烦的这样写    if(sum==13)    { count1++;        return;    }   if(kind<13)   {       int i;            for(i=0;i<5;i++)            {             sum+=i;             dfs(kind+1);             sum-=i;            }      }}int main(){    dfs(0);    printf("%d",count1);    return 0;}


0 0
原创粉丝点击