2014-09-26 3 views
0
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)) 

Это правильный код ..куб корень из отрицательного числа в Python

Но когда я впервые попробовал я оставил из if x<0: ans=-ans

И получил -27 в качестве выходного

Почему я получаю -27, если я не помещаю ans = -ans, не должен ли я сам получить ответ.

Я начинаю свежими в программировании нг через интернет, конечно, извините за ультра n00b ..

Благодаря

+0

«ANS = -ans **» этот синтаксис не существует – 2014-09-26 14:30:18

+0

предположительно звездочки в конце этой строки, а две в начале предыдущей строки предназначены для разметки, которые делают линии жирным шрифтом и на самом деле не являются частью кода. – Kevin

+0

3 не является кубическим корнем -27. –

ответ

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) 
Смежные вопросы