小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
#include <iostream>
#include <string>
using namespace std;
int A = 0;
int sun(int *a)
{
int nn=0;
for(int i=0;i<13;i++)
{
nn += a[i];
}
if(nn == 13)
{
return 1;
}
else
return 0;
}
void fun(int *a,int n)
{
if(n == 13)
{
if(sun(a) == 1)//判断是否为十三种情况
{
/*
for(int i=0;i<14;i++)//输出每种情况
{
cout<<a[i];
}
cout<<endl;
*/
A++;
}
}
else
{
for(int j=0;j<=4;j++)
{
a[n] = j;
fun(a,n+1);
}
}
}
int main()
{
int a[13];
memset(a,0,sizeof(a));
fun(a,0);
cout<<A<<endl;
return 0;
}
原文:https://www.cnblogs.com/zkw123/p/10502364.html