되는대로 살자

[C언어 기출문제&풀이] number steps 본문

2009~2014/C/C++

[C언어 기출문제&풀이] number steps

malu 2010. 11. 8. 17:53
프로그램 명: steps
제한시간: 1 초

원점 (0.0) 에서 시작하여 그림과 같이 0,1,2,3,... 의 숫자를 쓴다.

예를 들어 , 1 , 2 , 3 은 좌표 (1,1) , (2,0) , (3,1) 이다.

(x,y) 좌표를 입력으로 받아 이 좌표에 쓰여진 숫자를 출력하시오. x, y 은 범위는 0 ... 5000 이다.

입력

x,y 좌표가 입력으로 주어진다.

출력

할당된 번호를 출력한다. 할당된 번호가 없는 경우 'No Number' 를 출력한다.

입출력 예

입력

4 2

출력

6

입력

6 6

출력

12

입력

3 4

출력

No Number
출처:Tehran 2000

풀이 : 홀수(x==y,x!=y), 짝수(x==y,x!=y) 의 상황에 따라 규칙을 찾아 출력한다.

소스코드
01 #include <stdio.h>
02   
03 int main()
04 {
05     int x,y;
06     scanf("%d %d",&x,&y);
07     if(x%2==0)
08     {
09         if(x==y) printf("%d",x+y);
10         else if(y==x-2) printf("%d",x+y);
11         else printf("No Number");
12     }
13     else if(x%2==1)
14     {
15         if(x==y) printf("%d",2*x-1);
16         else if(y==x-2) printf("%d",2*y-1);
17         else printf("No Number");
18     }
19     else printf("No Number");
20 }

음.... 원래 소스코드 양을 더 줄일 수 있는데 귀차니즘과 다른 문제도 풀어야 해서 패스...