반응형

문제 출처 : 


https://www.acmicpc.net/problem/5988



알고리즘 분석 :


문제 해결에 필요한 사항

1. 홀수, 짝수 판별 방식

2. 10^60까지 처리 할 수 있는 방식


문제의 입력을 보면

두 번째 줄부터 N+1번째 줄에 걸쳐 홀수인지 짝수인지 확인할 정수 K (1 <= K <= 10^60)가 주어진다. 라고 조건을 제시한다.


10^60은 100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000인데 

이것은 usigned long long int로도 해결 할 수 없다.


즉, 이 수는 문자열로 배열에 받아야한다.


그리고 숫자의 길이를 구한 뒤(strlen이용) 마지막 자리가 홀수인지 짝수인지만 판별해 주면된다.


ex) 100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,001은 홀수이고

100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,002는 짝수이다.

100,000,000,000,000,000,000,123,003,050,000,000,080,090,000,000,000,000,000,003은 홀수이다.



소스 코드 : 


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
#include <stdio.h>
 
int main()
{
    int n, len;
    char arr[70];
    
    scanf("%d"&n);
 
    for (int i = 0; i < n; i++)
    {
        scanf("%s", arr);
        len = strlen(arr);
 
        if (arr[len - 1] % == 0)
            printf("even\n");
 
        else if (arr[len - 1] % == 1)
            printf("odd\n");        
    }
    
    return 0;
}
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus


반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

[10164번] 격자상의 경로(Dynamic Programming, Mathematic)  (0) 2016.07.20
[11809번] 충돌  (0) 2016.07.19
[10610번] 30  (0) 2016.07.09
[1789번] 수들의 합  (0) 2016.07.09
[10829번] 이진수 변환  (0) 2016.07.09