본문 바로가기

Coding Tests/코드업

코드업 1038번(정수 합 출력)

정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보는 문제이다.
(단, 입력되는 정수는 -1073741824 ~ 1073741824이다.)

 

<풀이>

입력되는 정수의 값의 범위에서 만약 최솟값 2개 가 입력이 된다면,

int형으로 표현할 수 있는 값의 표현 범위를 넘어서게 된다. 그래서 값의 표현 범위가 더 큰 자료형을 선택하여 풀어줘야 하는데,  long long int를 사용해 풀어주었다.

#include<stdio.h>
int main(void)
{
	long long int a, b;
	scanf("%lld %lld", &a, &b);
	
	printf("%lld", a + b);
	return 0;
}

 

<오답>

#include<stdio.h>
int main(void)
{
	unsigned int a, b;
	scanf("%u %u", &a, &b);
	
	printf("%u", a+b);
	return 0;
}

unsigned int형의 값의 표현 범위는 0 이상부터이므로 이 문제에선 사용하기에 부적합하다고 할 수 있다.

(코드 업 1028번 풀이 참조)