kinssang   7년 전

종이에 써서 수식을 생각해 낸 다음 그걸 math.h를 이용해서 그냥 숫자만 나오게 했는데요.


왜 시작하자마자 틀렸습니다가 나올까요?

0 2147483647 인풋에 대해서 결과가 출력되는 것을 확인했습니다.


수식은 x(x+1) = distance를 만족하는 x를 근의 공식을 이용해서 찾은 후

답을 찾아내는 방식으로 했는데요


제가 생각한 인풋과 아웃풋은 아주 잘 나오는데 혹시 오류가 있는 걸까요?


3 1 1 1

4 1 2 1

5 1 2 1 1

6 1 2 2 1

7 1 2 2 1 1

8 1 2 2 2 1

9 1 2 3 2 1

10 1 2 3 2 1 1

11 1 2 3 2 2 1

12 1 2 3 3 2 1

13 1 2 3 3 2 1 1

14 1 2 3 3 2 2 1

15 1 2 3 3 3 2 1

16 1 2 3 4 3 2 1

17 1 2 3 4 3 2 1 1

18 1 2 3 4 3 2 2 1

19 1 2 3 4 3 3 2 1

20 1 2 3 4 4 3 2 1

21 1 2 3 4 4 3 2 1 1

22 1 2 3 4 4 3 2 2 1

23 1 2 3 4 4 3 3 2 1

24 1 2 3 4 4 4 3 2 1

25 1 2 3 4 5 4 3 2 1


이런 식으로 가는 방법이 최소라고 생각했는데 틀린건가요?

참고로 위 인풋들은 다 넣어봤는데 제대로 나옵니다.


아무래도 타입캐스트가 문제인 것 같은데 왜 이렇게 타입캐스트를 하면 답이 다른지 가르쳐 주실 수 있나요?

도저히 모르겠습니다.

kinssang   7년 전

square = x*x에서 x의 기본 타입이 int 형이라 여기서 미스캐스팅이 일어난 것 같네요.

맞나요?

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