这是我开始做的功课。但正如我之前在本网站上读到的那样,人们会先告诉你先尝试一下。我现在试图理解递归,但我还没有得到它。我在想是否有人可以帮我解决这个问题,这样我就可以掌握整个概念,然后解决其余的功课。
因此,这个想法是用户输入金字塔中有多少层罐头。有了这些信息,该程序应该能够计算整个金字塔中有多少罐。图层为1 - 4 - 9 - 16,依此类推。
正如我之前所说,我不希望别人给我写代码,我真的想了解递归。
def cans(layers):
if layers == 0:
return 1
else:
return layers * cans(layers-1)
layers = raw_input("How many layers are there?: ")
print cans
答案 0 :(得分:0)
你在这里错过了递归的重点。对于每一层,计算都很简单 - 它只是图层数的平方。但是,要计算整个金字塔中的罐数,可以使用递归。
这是一种思考方式:
如果我们在python中表达相同的逻辑:
def cans(layers):
if layers == 0:
return 0
else:
return layers**2 + cans(layers-1)