题目
两种糖果分别有9个和16个,要全部分给7个小朋友,每个小朋友得到的糖果总数最少为2个最多为5个,问有多少种不同的分法。糖果必须全部分完。
只要有其中一个小朋友在两种方案中分到的糖果不完全相同,这两种方案就算作不同的方案。
答案提交
这是---道结果填空的题,你只需要算出结果后提交即可。本题的结果为---个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
分析
分糖果很明显的DFS,我们设置7个深度,每个深度代表一个孩子,两种糖果,m=9,n=16,当这两种糖果的值达到9和16或者这两种糖果的值都被消耗完了就返回,输出count。
代码
python
count=0
def dfs(depth,m,n):
global count
if depth==7:
if m==9 and n==16:
count+=1
return
for i in range(6):
for j in range(6):
if 2<=i+j<=5:
dfs(depth+1,m+i,j+n)
dfs(0,0,0)
print(count)
python
count= 0
def dfs(depth, n, m):
global count
if depth == 7:
if n == 0 and m == 0:
count += 1
return
for i in range(6):
for j in range(6):
if 2 <= i + j <= 5:
dfs(depth + 1, n - i, m - j)
dfs(0,9,16)
print(count)