코드는 의도대로 작성하셨지만, 논리가 살짝 틀리셨습니다.
실수에서는 정수를 다룰 때처럼 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...)
그리고 물론 코드를 고치신다면 실수 자료형의 정밀도에 대해서도 고려하셔야할겁니다.
choisk0531 3년 전 1
틀린곳 한곳도 없다고 자부합니다.