Python中负数的立方根

时间:2014-09-26 14:27:21

标签: python canopy

x = int(raw_input("enter number:"))
ans = 0
while ans**3 < abs(x):
    ans = ans+1
if ans**3 != abs(x):
    print("Not a perfect cube")
else:
    if x < 0:
        ans = -ans
    print(str(ans)+'  '+'is cube root of'+str(x))

这是正确的代码..

但是当我第一次尝试时,我遗漏了if x<0: ans=-ans

输出 -27

为什么我得到-27,如果我不把ans = -ans,我不应该把ans本身作为答案..

我正在通过在线课程重新开始编程,抱歉是超级n00b ..

由于

1 个答案:

答案 0 :(得分:0)

此代码有效:

x = int(raw_input("Enter an integer: "))

for ans in range(0, abs(x) + 1):
    if ans ** 3 == abs(x):
        break
if ans ** 3 != abs(x):
    print x, 'is not a perfect cube!'
else:
    if x < 0:
        ans = -ans
    print 'Cube root of ' + str(x) + ' is ' + str(ans)