wodus0129   1년 전

다음과 같이 작성했는데 틀렸다고 나와요...파이썬은 이렇게 작성해도 맞는데....

from math import *
def dis(x1, y1, x2, y2): chax = max(x1, x2) - min(x1, x2) chay = max(y1, y2) - min(y1, y2) return int(sqrt(chax * chax + chay * chay))
x1, y1, r1 = map(int, input().split())x2, y2, r2 = map(int, input().split())ret = dis(x1, y1, x2, y2)
if ret >= r1 + r2: print("NO")else: print("YES")

C언어 어디서 틀린건가요?

kimyeonwoo0506   1년 전

애초에 math.h 해더의 sqrt함수는 double형에 대해 계산되는 겁니다. int형을 이 함수에 넣어서 아마 일부 예제에 계산 오차가 생긴 것 같아요.

저 해더의 함수를 사용할 경우에는 정수가 입력된다고 해도 모든 좌표와 거리 값을 전부 double형으로 입력받아서 계산하면 문제 없을 거에요.

모든 int를 double로만 바꾸면 될겁니다.

wodus0129   1년 전

distance 변수 자료형을 double로, func 함수도 double로 바꾸고 28행 if문에서 hap 변수에 double형으로 캐스트 연산자 넣었는데 틀렸다 나와요,...

kimyeonwoo0506   1년 전

scanf("%lf");

했나요...?

함수 return 앞에 (int) 삭제하고요...

다하셨으면 오류 안 날텐데...

kimyeonwoo0506   1년 전

캐스트 연산자 말고 그냥 전부 자료형 자체를 double로 바꾸세요 int형 쓰지 말고요

wodus0129   1년 전

아 이제 돼요 감사합니다

댓글을 작성하려면 로그인해야 합니다.