whdgurclzls   4년 전

안녕하세요

20번째 줄 m = int((l+r)/2) 이렇게 하면 시간초과가 떠서 질문 드립니다

대충 어떤점에서 틀렸는지는 알겠는데 명확하지 않아서 여쭈어봅니다..

  1. int((l+r)/2) 이런식으로 명시적으로 형변환 하면 long long int 로 선언해도 int 범위로 가는건가요?
  2. 사실 1번처럼 한게 소수가 나올까봐 int를 붙여준건데 int를 안붙여줘도 선언된 자료형 보고 자동으로  형변환 시켜주는건가요?

djm03178   4년 전

  1. 네. 괄호 안의 값은 long long이지만 강제로 int로 형변환했기 때문에 int의 범위를 벗어난 수는 표현할 수 없게 됩니다.
  2. 정수형/정수형의 결과는 몫만 취하는 정수형입니다. 실수형으로 나온 결과가 정수형으로 형변환되는 게 아니고, 애초에 결과가 정수형이기 때문에 형변환을 따로 안 해줘도 그냥 정수형입니다.

whdgurclzls   4년 전

와 명쾌하게 이해 되었습니다!

항상 질문게시판에서 좋은 답변 주셔서 감사합니다 ㅜㅜ 정말 도움 많이 됩니다

저녁 맛있게 드세요~~ :)

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