我正在看麻省理工学院开放式课程2008计算机科学和编程导论,并试着做作业(job).这是非正式的,所以不涉及评分.有一个问题,你必须购买特定数量的金块,包装包含6个、9个和20个金块.其目的是学习如何在Python中使用递归.我要解决多达65个掘金的问题.
我已经编写了下面的代码.它有点管用,但问题是,我输入的每个数字都只有一个解决方案.我如何确保我得到了每个掘金总数的所有可能的组合?
def testtheorem(x):
for a in range(0,15):
for b in range(0,15):
for c in range(0,15):
y = 6*a + 9*b + 20*c
if y == x and x < 66:
print ("For", int(x), "total;")
print ("6 piece can be", int(a))
print ("9 piece can be", int(b))
print ("20 piece can be", int(c))
testtheorem(x+1)
return