종만북 1권 243쪽페이지에 있는건데 ( 원주율 외우기 문제 )
난이도 최소값을 구하는 문제인데 cache에는 최소값이 들어가야하니까
INF 에 무한대의 가장큰값을 넣는 것 같아서
처음에 Integer.MAX_VALUE; 넣어서 안되서 0xffffffff 이거 넣었는데 안되더라고요
종만북에도 987654321 적혀있고 자바답 소스에도 저렇게 적혀있는데 저렇게 하니까
되더라고요. Integer.MAX_VALUE 해서 안되는 이유가 뭔지 알려주세요..
오버플로우 난거 아님? 그리고 0xffffffff는 max값 아님
저번에 min값 구하는게 있으면 처음에 초기화할때 줄수있는 제일큰값 넣어준다고 0xffffffff 넣어준다고 해서 그리고 오버플로우 난건 맞는거같아요 답이 숫자가 큰 음수로 답이 나오던데;; 다시한번 코드를 봐보겠슴다;ㅠ
오버플로우 난듯
int가 21억 정도까지 표현 가능하거든? 만약 21억을 내가 미리 넣어줬는데 걔들끼리 더하면 오버플로우가 나서 음수가 나옴
그래서 보통 오버플로우를 막기 위해 10억 정도의 값을 넣어줌. 굳이 987654321같은 수를 이용하는 이유는 10억 치다가 0개수 오타나면 짜증나기 때문. 이건 C++14 들어오면서 개선됨
그렇군요 너무 어렵네여 답변감사합니다ㅎ
나는 987654321 치기도 귀찮아서 1e9+10 침. 이러면 어지간해서 문제될일 없음
int maxInt = (1 << 31) - 1; 이거 자바에선 안되나 int minInt = (1 << 31); 이것도 가능 ㅎ
자료형 최대 최소값 넣는거요? 쉬프트연산하는건가
이거보다는 limits.h 에 있는 리미트 이용하는걸 추천
그리고 위의 문제처럼 덧셈할 일 있으면 / 2 해주면 됨
/2 도 하네요 나누기 2해도 어차피 큰값이라 그런가보네요 감사합니다
무심코 들어왔다가 필기하고 감 - dc App