choisk0531   3년 전

틀린곳 한곳도 없다고 자부합니다.

harinboy   3년 전

코드는 의도대로 작성하셨지만, 논리가 살짝 틀리셨습니다.

실수에서는 정수를 다룰 때처럼 18번째줄의 result-=1000를 마음 편하게 할 수가 없습니다.

A=3+sqrt(5)라고 하면, (A*1000)%1000!=0이기 때문에, 실수 x 에 대해

((x-1000)*A)%1000 = (x*A-A*1000)%1000 != (x*A)%1000 가 됩니다.

그래서 답이 3935.739..인 n=5까지는 답이 잘 나오겠지만,

18번째 줄이 적용되는 n=6부터는 틀린 답이 나오게 됩니다.

( A^6=20607.801..., (A^5-3000)*A=(935.739...)*A=4899.597...)

그리고 물론 코드를 고치신다면 실수 자료형의 정밀도에 대해서도 고려하셔야할겁니다.

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