猪猪 Hanke 得到了一只鸡。
猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 10 10 种配料(芥末、孜然等),每种配料可以放 1 1 1 到 3 3 3 克,任意烤鸡的美味程度为所有配料质量之和。
现在, Hanke 想要知道,如果给你一个美味程度 n n n ,请输出这 10 10 10 种配料的所有搭配方案。
一个正整数 n n n,表示美味程度。
第一行,方案总数。
第二行至结束, 10 10 10 个数,表示每种配料所放的质量,按字典序排列。
如果没有符合要求的方法,就只要在第一行输出一个 0 0 0。
11
10
1 1 1 1 1 1 1 1 1 2
1 1 1 1 1 1 1 1 2 1
1 1 1 1 1 1 1 2 1 1
1 1 1 1 1 1 2 1 1 1
1 1 1 1 1 2 1 1 1 1
1 1 1 1 2 1 1 1 1 1
1 1 1 2 1 1 1 1 1 1
1 1 2 1 1 1 1 1 1 1
1 2 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1
对于 100 % 100\% 100% 的数据, n ≤ 5000 n \leq 5000 n≤5000。
num= int(input())
value_ans = []
value_sum = 0
if num>=10 and num<=30:
mapp = [1, 2, 3]
for a in mapp:
for b in mapp:
for c in mapp:
for d in mapp:
for e in mapp:
for f in mapp:
for g in mapp:
for h in mapp:
for i in mapp:
for j in mapp:
if a + b + c + d + e + f + g + h + i + j == num:
value_ans.append(list([a, b, c, d, e, f, g, h, i, j]))
value_sum += 1
if value_sum!=0:
print(value_sum)
for item in range(value_sum):
print_ans=value_ans[item]
for j in range(10):
print(print_ans[j],end=' ')
print()
else:
print(0)
这道题目就是提单的名字直接爆力搜索。注意的是如果美味超过了三十或者小于十都是无法构成的,可以特殊判断进行直接输出即可。再就是输出的时候,输出的列表是含有逗号和中括号的,这样子输出不符合题目要求,要特别设置一个数列进行承接。特别再设置一个的原因是列表中录入列表,并不能当作二维数组来看待。因此不能使用value_ans[][]来输出