메뉴 건너뛰기
문제의 원인은 int 자료형 범위 초과(overflow) 때문입니다.
int
C 언어에서 int는 보통 32비트 정수로, 표현 가능한 범위는 약 -2,147,483,648 ~ 2,147,483,647 입니다.
제시한 입력 10 10 10의 경우를 계산해 보면:
10 10 10
a = 10 (시작값) r = 10 (등비) n = 10 (몇 번째 수) 계산: 10 × 10^(10-1) = 10 × 10^9 = 10^10 = 10,000,000,000
그런데 10,000,000,000 > 2,147,483,647 이므로, int에 저장할 수 없고, 값이 범위를 넘어가면서 잘못된(음수거나 엉뚱한) 값이 나옵니다.
여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.
파일 용량 제한 : 0MB (허용 확장자 : *.*)
업로드 중... (0%)
로그인 유지
브라우저를 닫더라도 로그인이 계속 유지될 수 있습니다.로그인 유지 기능을 사용할 경우 다음 접속부터는 로그인할 필요가 없습니다.단, PC방, 학교, 도서관 등 공공장소에서 이용 시 개인정보가 유출될 수 있으니 꼭 로그아웃을 해주세요.
문제의 원인은
int자료형 범위 초과(overflow) 때문입니다.C 언어에서
int는 보통 32비트 정수로, 표현 가능한 범위는 약-2,147,483,648 ~ 2,147,483,647 입니다.
제시한 입력
10 10 10의 경우를 계산해 보면:a = 10 (시작값) r = 10 (등비) n = 10 (몇 번째 수) 계산: 10 × 10^(10-1) = 10 × 10^9 = 10^10 = 10,000,000,000그런데 10,000,000,000 > 2,147,483,647 이므로,
int에 저장할 수 없고, 값이 범위를 넘어가면서 잘못된(음수거나 엉뚱한) 값이 나옵니다.