x2 - nx - (n-k+1) = 0 이렇게 나와서 a = 1, b = -n, c = -(n-k+1) 두고 했습니다.
x = n +- (n2 + 4(n-k+1))0.5
1.
6줄 조건에서 루트 안에 들어가도 정수로 나올 수 있는지 검사하고자 조건을 달았는데 아래와 같이 적지 않으면 틀린 것으로 됩니다.
주석으로 표시할 것처럼 조건을 달면 틀리더군요.. 답안의 조건이 제곱을 해줌으로써 다시 원상복귀했을 뿐 주석으로 표시한 루트 씌워서 비교하는 것과 다를 바가 없지 않나요? 왜 틀리는 건지 모르겠습니다..
2.
다음 코드 또한 궁금한 점이 있는데요. 이 코드는 아예 예외 처리를 이용해서 짰습니다. 근의 공식을 이용한 뒤 루트 안에 음수가 들어가서 에러가 나거나 정수로 형변환할 때 에러가 나는 등 그러한 오류가 발생할 경우 해가 0 이상의 정수로 나올 것이라 생각되지 않았고 no를 출력하도록 했습니다. 왜 두 번째 코드가 틀린 지 그 반례를 모르겠습니다..
첫 번째 질문과 두 번째 질문에 대한 반례를 아시는 분이 계시다면 조언 부탁 드립니다...
x**0.5는 결과를 float으로 계산합니다. float이 가지는 정밀도는 53비트(약 8*1e15) 정도로, 15자리를 넘는 수는 정확하게 계산하지 못합니다. 문제는 2^64에 가까운 수들을 다루고 있기 때문에 **0.5로 제곱근을 취할 경우 틀린 결과를 내놓을 수 있습니다. 맞으신 코드 역시 맞도록 정해진 것인지 우연히 맞는 데이터만 있는지 알기 어렵습니다.
dpf226 2년 전
근의 공식을 이용해서 풀었는데요.
ax2+ bx + c = 0
x2 - nx - (n-k+1) = 0 이렇게 나와서 a = 1, b = -n, c = -(n-k+1) 두고 했습니다.
x = n +- (n2 + 4(n-k+1))0.5
1.
6줄 조건에서 루트 안에 들어가도 정수로 나올 수 있는지 검사하고자 조건을 달았는데 아래와 같이 적지 않으면 틀린 것으로 됩니다.
주석으로 표시할 것처럼 조건을 달면 틀리더군요.. 답안의 조건이 제곱을 해줌으로써 다시 원상복귀했을 뿐 주석으로 표시한 루트 씌워서 비교하는 것과 다를 바가 없지 않나요? 왜 틀리는 건지 모르겠습니다..
2.
다음 코드 또한 궁금한 점이 있는데요. 이 코드는 아예 예외 처리를 이용해서 짰습니다. 근의 공식을 이용한 뒤 루트 안에 음수가 들어가서 에러가 나거나 정수로 형변환할 때 에러가 나는 등 그러한 오류가 발생할 경우 해가 0 이상의 정수로 나올 것이라 생각되지 않았고 no를 출력하도록 했습니다. 왜 두 번째 코드가 틀린 지 그 반례를 모르겠습니다..
첫 번째 질문과 두 번째 질문에 대한 반례를 아시는 분이 계시다면 조언 부탁 드립니다...