반응형
https://www.acmicpc.net/problem/21185
정수론 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
등차가 1인 연속 정수 구간의 길이 n을 선언 후 입력받습니다.
📔 풀이과정
2가지 경우가 있습니다.
1. n이 홀수인 경우 : 연속 구간이 홀수라면 (짝수가 짝수개, 홀수가 홀수개), (짝수가 홀수개, 홀수가 짝수개) 두 경우이므로 누적합이 짝수 또는 홀수가 나오게 됩니다.
2. 짝수인 경우 : 어떤 구간을 선택해도 짝수가 짝수개, 홀수가 짝수개의 형태로 나오게 됩니다. 따라서 그냥 1부터 n까지의 누적합 공식으로 짝수 홀수를 판별해줍니다. 공식은 다음과 같습니다.
$\displaystyle\sum\limits_{i=1}^{n} = \frac{n*(n+1)}{2} $
📔 정답출력
조건에 따라 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
cin >> n;
if(n % 2) cout << "Either";
else {
if(n * (n+1) / 2 % 2) cout << "Odd";
else cout << "Even";
}
}
'Algorithm > Math' 카테고리의 다른 글
(C++) - 백준(BOJ) 1703 : 생장점 (0) | 2021.11.19 |
---|---|
(C++) - 백준(BOJ) 21335 : Another Eruption (0) | 2021.11.12 |
(C++) - 백준(BOJ) 18330 : Petrol (0) | 2021.11.01 |
(C++) - 백준(BOJ) 18005 : Even or Odd? (0) | 2021.10.31 |
(C++) - 백준(BOJ) 16693 : Pizza Deal (0) | 2021.10.27 |