반응형
문제 출처 :
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] % 2 == 0) printf("even\n"); else if (arr[len - 1] % 2 == 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 |