以下是我发现的最佳方法:
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)
有没有更好的方法,最好是避免迭代候选值的方法?
3.11
发布以来已经过去了几个月,您只需使用math.cbrt(x)
,在先导入import math
后即可。它还将覆盖负值情况,并且比x ** (1/3)
更加优化。 - Mortasen