IT 프로그래밍/백준

[c++] 15894번 수학은 체육과목 입니다.

기술1 2024. 6. 1. 16:28

 

문제

코드

#include <iostream>


using namespace std;

int main()
{
	unsigned int n;
	cin >> n;

	cout << n * 4 << endl;

	return 0;
}

 

풀이

정말 간단한 문제지만 오답률이 조금 있었던 것이 바로 범위를 파악하지 못했기 때문입니다. 

 

그냥 int n; 으로 하면 되지 않을까? 라고 생각할 수 있지만 주어진 입력 범위가 1 <= n <= 10^9 입니다. 이 범위는 매우 큰 값이며 양의 정수입니다. int는 10^9까지 받을 수 있는데요. 근데 여기에다가 둘레를 계산할 때 n * 4가 되기 때문에 int의 범위를 넘어가게 되는 것입니다. 

 

따라서 해당 경우에 오버플로우가 발생하게 됩니다. 그러기 때문에 unsigned int 를 사용하면 됩니다.

unsignedint는 0부터 4,294,967,295 범위의 수를 사용가능한 것입니다. 

 

 

'IT 프로그래밍 > 백준' 카테고리의 다른 글

[c++] 5073번 삼각형과 세 변  (0) 2024.06.01
[c++] 10101번 삼걱형 외우기  (0) 2024.06.01
[c++] 백준 3009번 네 번째 점  (0) 2024.06.01
[c++] 1193번 : 분수찾기  (0) 2024.05.30
[c++] 백준 2292번 : 벌집  (0) 2024.05.30