https://www.acmicpc.net/problem/2903
초기에 4개의 점을 가진 정사각형에, 입력받은 숫자만큼 일련의 과정을 거쳤을 경우의 점의 개수를 출력해야 한다.
#include <iostream>
#include <string>
using namespace std;
int main(){
// n == 1 일 때 한 변의 점 개수 : 3
// n == 2 일 때 한 변의 점 개수 : 5
// n == 3 일 때 한 변의 점 개수 : 9
// n+1일 때 한 변의 점의 개수는, n일 때 한 변의 점의 개수 + (n일 때 한 변의 점의 개수 - 1)
// 또한, 점의 개수와 동일하게 선의 개수를 가짐.
int n;
cin >> n;
int init = 2;
for (int i=0;i<n;i++){
init = (init + (init - 1));
}
cout << init * init;
}
한 번의 과정을 거칠 때 마다, 정사각형의 한 변의 점의 개수는,
과정을 거치기 전의 한 변의 점 개수 + (과정을 거치기 전의 한 변의 점 개수 - 1) 이다.
그리고 과정을 거친 정사각형은 한 변의 점의 개수만큼의 직선을 가진다. 즉, 한 변의 점의 개수가 5개면 5개의 직선을 가진다.
그러므로, 한 변의 점의 개수의 제곱이 곧 n번의 과정을 거친 정사각형의 점의 개수가 된다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1193번 분수찾기 [C++] (0) | 2023.11.26 |
---|---|
백준 2292번 벌집 [C++] (0) | 2023.11.26 |
백준 2720번 세탁소 사장 동혁 [C++] (1) | 2023.11.26 |
백준 11005 진법 변환 2 [C++] (0) | 2023.11.26 |
백준 2745번 진법 변환 [C++] (1) | 2023.11.26 |