为什么math.pow返回的值与**运算符不同? [重复]

问题描述 投票:0回答:1

我一直在尝试解决这个问题:

底部的多维数据集的体积为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)时,它实际上应返回56352,但返回-1。

nb_vol += math.pow(nb, 3)

to

nb_vol += nb ** 3

一切正常。 为什么?

我一直在尝试解决这个问题:底部的多维数据集的体积为n ^ 3,上方的多维数据集的体积为(n-1)^ 3,依此类推,直到顶部的多维数据集具有体积为1 ^ 3。 ...

python
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.