我一直在试图解决这个问题:
底部的立方体的体积为n ^ 3,上方的立方体将为 体积为(n-1)^ 3,依此类推,直到顶部有一个 体积为1 ^ 3。
给出建筑物的总体积m。被给予m可以 您找到要构建的多维数据集数量n?
这是我的代码
import math
def find_nb(m):
nb = 1
nb_vol = 0
while True:
nb_vol += math.pow(nb, 3)
if (nb_vol == m):
return nb
elif (nb_vol > m):
return -1
nb += 1
现在,当我尝试求解find_nb(2521115597681328384)时,它将返回-1,而实际上应返回56352。如果我更改
nb_vol += math.pow(nb, 3)
到
nb_vol += nb ** 3
一切正常。 为什么?
答案 0 :(得分:0)
math.pow
always converts it’s arguments to float
s first,这只是一个近似值。
**
运算符使用永远不会溢出的整数,这意味着它总是给出正确的结果。