2016-12-06 47 views
0

我知道我们可以使用公式math.floor(b**(1.0/i))-math.ceil(a**(1.0/i))+1 来计算给定范围内的平方数,当我想要找到完美立方体的数量时,它是否成立?计算给定范围内的完美平方,完美立方体等的数量?

更新:对于所有的人都面临着这样的问题,楼层和小区功能不能很好平方根,立方根工作后,等

+0

什么值不适用?这是Python的问题还是你的算法? –

+0

算法我相信吗? –

+0

例如:范围32,64。 –

回答

1

浮点数计算are not exact

64 ** 1/3的值可能是〜3.99999975,所以floor给出3.或4.000000016,所以ceil给出5(我没有检查实际值)。您必须考虑数字错误。

对于此任务,您可以计算根(使用**或Math.Pow),并检查与floor-ed和ceil-ed值的差异。如果差异非常小,请检查此根是否确切一个 - 使用乘法的整数。

+0

谢谢你解决了很多问题,但我仍然得到了一些错误的答案。我更新了代码。 –

+0

您是否将高值,低值与真值进行了比较? – MBo

+0

谢谢。有效。代码中有错误。 –