https://www.acmicpc.net/problem/2903
다음 단계로 넘어갈 때마다 한 변(가장 큰 사각형의 한 변)에서 각 변에 점이 찍히니까
N 단계의 한 변의 점의 개수는 N-1 단계의 한 변의 점의 개수 각 변의 개수이다.
즉, N 단계의 한 변의 점의 개수는 결국 N-1 단계의 한 변의 점의 개수 + 변의 개수이다.
우리가 구하는 점의 개수는 한 변의 점의 개수의 제곱이니,
이를 코드로 작성하면
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <stdio.h>
int main()
{
int n;
int p = 2, e = 1;
// p = 점, e = 변
// 처음에 큰 사각형의 각 변의 점은 2개 변은 1개
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
int tp = p;
p += e;
e += tp - 1;
}
printf("%d", p *p);
}
|
cs |
'Problem Solving' 카테고리의 다른 글
[BOJ 1331] 나이트투어 (0) | 2019.03.10 |
---|---|
[BOJ 1037] 약수 (0) | 2019.03.10 |
[BOJ 2869] 달팽이는 올라가고 싶다 (0) | 2019.03.03 |
[BOJ 2004] 조합 0의 개수 (0) | 2019.03.03 |
[BOJ 1676] 팩토리얼 0의 개수 (0) | 2019.03.03 |