Lavida 1027 1부터 N까지의 합 구하기 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;
}
댓글남기기