Lavida 1027 1부터 N까지의 합 구하기 1

1 분 소요

문제 설명

3월 14일 화이트데이를 맞아 농부 류주는 평상시 호감을 갖고있던 허세와 현종에게 사탕을 주려고 한다.
하지만 허세와 현종은 특이한 점이 하나 있는데, 둘다 지나치게 짝수 를 좋아하기 때문에 홀수개의 사탕을 주면 류주에게 폭력을 행사할 것이었다.
또한 둘 중에 하나에게 사탕을 주지 않아도 류주는 아마 맞게 될 것이다.

총 몇개의 사탕을 준비해서 줘야 허세와 현종이 둘다 류주를 때리지 않고 고마워 할까? 류주가 가지고 있는 사탕의 개수를 입력받아, 허세와 현종이에게 각각 짝수개의 사탕을 남는 사탕 없이 건내줄 수 있는지 판별하는 프로그램을 작성하라.

입력 설명

입력의 첫번째 줄에는 테스트 케이스를 의미하는 T(1<=T<=100)이 입력된다. 그 다음 줄 부터 N개의 줄에는 류주가 가지고 있는 사탕의 개수 N이 입력되며, N은 1이상 100이하의 정수다.

출력 설명

각 입력에 대해, 사탕의 개수를 입력받은 순서대로 답을 한줄에 하나씩 출력한다. 만약 둘에게 원하는데로 나눠줄 수 없을경우 ‘NO’(따옴표 제외)를 출력하고, 만약 가능할 경우 몇개를 나눠줘야 하는지를 출력한다. 답이 여럿을 만족할 경우 허세가 최대한 적게 받고 현종이가 최대한 많이 받게 출력해야 한다. 다시 말해서 N = 6 일 경우 (2,4) 혹은 (4,2)의 두가지 경우가 존재하는데, (2,4)를 출력해야 한다. 출력되는 숫자 사이에는 공백이 존재해야 한다.

입력 예시

2
1
4

출력 예시

NO
2 2

코드1

#include <stdio.h>

int main(void)
{
	int testcase, a, result = 0;
	scanf("%d", &testcase);
	for (int i = 0; i < testcase; i++)
	{
		scanf("%d", &a);
		while (1){
			result++;
			if (result % 2 == 0) {
				break;
			}
		}
		if (a - result > 0 && (a - result) % 2 == 0) {
			printf("%d %d\n", result, a - result);
		}
		else {
			printf("NO\n");
		}
		result = 0;
	}
	return 0;
}

나 : say

댓글남기기