【发布时间】:2018-09-23 06:53:13
【问题描述】:
问题陈述:
建造一座由 n 个立方体组成的建筑物。底部的立方体的体积为 n^3,上面的立方体的体积为 (n-1)^3,依此类推,直到顶部的体积为 1^3。
给定建筑物的总体积 m。给定m,你能找到你必须构建的立方体数量吗?
函数findNb (find_nb, find-nb, findNb)的参数是一个整数m,你必须返回整数n,例如n^3 + (n-1)^3 + ... + 1 ^3 = m 如果存在这样的 n 或 -1 如果不存在这样的 n。
以下代码在数学上是正确的,并且会计算出正确的值,但在代码战上提交时会失败。该消息说,如果在他们的服务器上执行超过 12 秒,则需要更多优化。感谢您的帮助。
def find_nb(m):
# your code
n = int(m**(1./3.))
#print (n)
total_volume = 0
for i in range (1,n+1):
#print (i*i*i)
total_volume+= i*i*i
#print (total_volume)
if(total_volume == m):
#print (i)
return i
break
return -1
【问题讨论】:
标签: python optimization