我知道我们可以使用公式math.floor(b**(1.0/i))-math.ceil(a**(1.0/i))+1
计算给定范围内的平方数,当我想找到完美立方体的数量等时它是否成立?
更新:对于遇到此问题的所有人,在平方根,立方根等之后,floor和ceil函数不能正常工作。
答案 0 :(得分:1)
浮点数计算are not exact。
64 ** 1/3可能具有~3.99999975之类的值,因此floor
给出3.或4.000000016,因此ceil
给出5(我没有检查实际值)。您必须考虑数字错误。
对于此任务,您可以计算root(使用**或Math.Pow),并检查与floor-ceil-ed值和ceil-ed值的差异。如果差异非常小,请检查此根是否正确 - 使用乘法的整数。