2017-11-22 1 views
0

도형이 큐브인지 확인해야합니다. 나는 한쪽의 총 부피와 길이를 가지고있다. 먼저 볼륨과면이 모두 0보다 큰지 확인한 다음 볼륨의 3 차 루트가 측면과 동일한 지 확인합니다.
문제는 다음 코드를 사용하여 125의 입방 루트가 4.999999999로 반환된다는 것입니다. 숫자를 반올림하면 다른 경우에 부정확 해집니다 (4.6도 5가됩니다). 저는 Python을 처음 접 했습니다만, Javascripts Math.cbrt()와 같은 큐브 루트가 없다는 것을 알 수 있습니다.완벽한 큐브의 큐브 루트 찾기 python3

def is_cube(volume, side): 
if volume <= 0 or side <= 0: 
    return False 
elif volume ** (1/3) != side: 
    return False 
else: 
    return True 

나는 아주 명백한 것을 놓치고있는 것처럼 느껴집니다. 저는 파이썬 3의 부서가 항상 플로팅 넘버를 줄 것이라고 압니다. 그러나 125는 완벽한 큐브입니다.

+0

해결 방법 들여 쓰기가 수정 된 솔루션은 125, 5 매개 변수로 사용할 수 있습니다. True를 반환합니다. 그게 니가 원하는거야, 그렇지? – mrCarnivore

+0

네, 방금 5 대신 4.999999에 혼란 스러웠습니다. 여전히 파이썬이 빠지면서 ... 그리고 stackoverflow. – nevadajames

답변

3
def is_cube(volume):  
    return int(round(volume ** (1/3.))) ** 3 == volume 
+0

좋아, 나는 그것을 다시 둥근 생각하지 않았다, 다음 큐브, 감사합니다 Logged – nevadajames

0
def cube_volume(volume,side): 
    if side>= 0 and volume>= 0: 
     if side**3 == volume: 
      return True 
     else: 
      return False 

이보십시오!