Link https://www.acmicpc.net/problem/1964
소스결과 1988 KB / 36 ms
출처 Baekjoon
언어 C++ 17
분류 수학
설명
그림과 같은 오각형의 점의 개수를 45678로 나눈 나머지를 출력한다.
그림 속 값이 늘어나는 일정한 규칙을 찾자.
과거 도형과 겹치는 부분을 제외하면 길이가 1 늘어난 변이 3개 존재하고 겹치는 점이 2개 존재한다.
% 연산자의 특성을 고려해 결과값을 계산해 나가면 된다.
알고리즘
1. n을 입력 받는다.
2. 현재까지의 오각형 점의 수를 45678로 나눈 값 + 이번에 새로 추가된 점의 수 % 45678을 현재 5각형의 수로 정한다. 초기값은 5
3. 출력한다.
소스코드
#include <iostream>
using namespace std;
const int MAX = 45678;
int main()
{
int n;
int res = 5;
int size = 1;
cin >> n;
for (int i = 1; i < n; i++)
res = (res + (i + 2) + ((i + 1) * 2)) % MAX;
cout << res;
return 0;
}
'Algorithm > Dynamic Programming' 카테고리의 다른 글
Baekjoon 5573 산책 (0) | 2019.08.19 |
---|---|
Baekjoon 5569 출근경로 (0) | 2019.08.19 |
Baekjoon 1904 01타일 (0) | 2019.04.01 |
BaekJoon 2752 보드게임 (0) | 2019.01.31 |
BaekJoon 1912 연속합 (0) | 2019.01.14 |