일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 제어문
- 풀이&소스코드저작권:왕유승
- 독후감
- 리눅스 명령어
- API
- if문
- 프로그래밍
- IT
- Backdoor
- 정보올림피아드
- C++
- For문
- 알고리즘
- 참조은요양병원
- 리눅스
- 수학영재원
- 백도어
- 문제출저:www.dovelet.com
- c언어
- 반복문
- C
- 자료구조
- 정보과학
- 배열
- Linux
- 다중반복문
- 영재교육원
- 정보영재원
- DBMS
- 독서 감상문
Archives
- Today
- Total
되는대로 살자
[C언어 기출문제&풀이] 커피캔 본문
프로그램 명: can(open problem)
제한시간: 1 초
어떤 커피 캔 속에 검은 콩과 하얀 콩이 섞여 들어가 있다. 그리고 당신에게는 무한 개의 검은 콩이 주어져 있다.
당신은 캔에 콩이 하나가 남을 때까지 다음 과정을 반복한다.(최종적으로 하나의 콩이 남는다는 것은 보장된다.)
- 캔에서 콩 두개를 아무렇게나 집는다.
- 두 콩의 색이 같으면, 둘 다 캔에서 빼내고 별도로 검은 콩 하나를 캔에 넣는다. 두 콩의 색이 다르면, 하얀 콩은 다시 캔에 넣고 검은 콩만 빼낸다.
문제는, 캔 속에 들어 있는 검은 콩과 하얀 콩의 개수가 주어질때, 최종적으로 남는 콩의 색깔을 구하는 것이다.
입력
캔에 든 검은 콩의 개수와 하얀 콩의 개수가 순차적으로 주어진다. 각 콩의 개수는 2^31-1 이하이다.
출력
최종적으로 남은 콩의 색깔이 하얀색이면 white, 검은색이면 black을 출력한다.
입출력 예
입력 25 23 출력 white 입력 16 4 출력 black 입력 17 2 출력 black
출처+채점데이터:jwvg0425
풀이 : 각 콩의 개수만을 주고서 최종적으로 남는 콩의 종류를 구하는 것을 묻고 있는데
이것은 어떻게 뽑더라도 마지막에 남는 콩의 종류는 같다고 생각할 수 있다.
(예시에서 보면 답이 하나인데 뽑는 순서에 따라서 남는 콩의 종류가 달라진다면 하나의 답이
나올 수 없다.)
따라서 자신이 하고 싶은 순서에 따라 편하게 뽑으면 된다.
먼저 하얀 콩을 두개씩 계속 뽑는다. 조건대로 반복 하게되면 하얀콩이 짝수라면 마지막에
검은 콩만 남게 되고 하얀콩이 홀수라면 하얀콩이 마지막에 남게 된다.
정리하자면 하얀콩의 갯수가 짝수라면 검은콩만이 남게 되고 하얀콩의 갯수가 홀수라면 하얀콩이
마지막으로 남게 된다.
소스파일 :
1
#include <stdio.h>
2
3
int
main()
4
{
5
int
white,black;
6
scanf
(
"%d %d"
,&black,&white);
7
if
(white%2==0)
printf
(
"black"
);
8
else
printf
(
"white"
);
9
}
'2009~2014 > C/C++' 카테고리의 다른 글
[C언어 기출문제&풀이]기본 연산 (0) | 2010.11.01 |
---|---|
[C언어 기출문제&풀이] 분을 초로 변환 (0) | 2010.11.01 |
[C언어 기출문제&풀이] 정보올림피아드 (0) | 2010.11.01 |
[C언어 기출문제&풀이] 정보올림피아드 (0) | 2010.11.01 |
[C언어 기출문제&풀이] 정보올림피아드 (0) | 2010.11.01 |