问题描述:
两种糖果分别有9个和16个,要全部分给7个小朋友,每个小朋友得到的糖果最少为2个最多为5个,问有多少种不同的方法。糖果必须全部分完
只要有其中一个小朋友在两种方案中分到的糖果不完全相同,这两种方案就算作不同的方案。
#include <stdio.h>
#include <stdlib.h>
int sum=0;
enum
{
a=1,
b=2,
c=3,
d=4,
e=5,
f=6,
g=7,
};
void dfs(int m,int n,int kid)
{
if(kid>=7)
{
if(m==0 && n==0)
sum++;
return;
}
for(int i=0;i<=m;i++)
{
for(int j=0;j<=n;j++)
{
if(i+j>=2 && i+j<=5)
dfs(m-i,n-j,kid+1);
}
}
}
int main(int argc, char *argv[])
{
// 请在此输入您的代码
dfs(9,16,0);
printf("%d",sum);
return 0;
}