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 ..
由于
答案 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)