这题可以用二进制枚举,也可以用dfs,都很简单。
//二进制枚举,最后一次是花,枚举前面的14个
#include<stdio.h>
int count;
int main()
{
int i,j;
int dian,hua,jiu;
for(i=0;i<(1<<14);i++)
{
for(j=0;j<14;j++)
{
if(i&(1<<j))
{
dian++;
jiu*=2;
}
else
{
hua++;
jiu-=1;
}
}
if(dian==5&&hua==9&&jiu==1)
count++;
}
}
//dfs
#include<stdio.h>
int count;
void dfs(int d,int h,int j)
{
if(d==0&&h==0&&j==1)
{
count++;
return ;
}
if(d<0||h<0||j<=0)
return ;
dfs(d-1,h,j*2);
dfs(d,h-1,j-1);
}
int main()
{
dfs(5,9,2);
printf("%d\n",count);
return 0;
}