IT 프로그래밍/C++

[c++] 2903번 중앙 이동 알고리즘

기술1 2024. 5. 25. 16:00
반응형

문제

https://www.acmicpc.net/problem/2903

 

코드

#include <iostream>
#include <cmath>
using namespace std;
int n;

int main()
{
	cin >> n;
	int dot = 2;

	while (n--)
	{
		dot = dot * 2 - 1;
	}

	cout << static_cast<long long>(pow(dot, 2)) << endl;

	return 0;
}

 

설명 

주어진 도형을 잘 보면 2 * 점의 개수 -1 순으로 증가를 하는 것을 볼 수 있습니다.

 

이것을 바탕으로 while문을 걸어준 다음 pow(dot, 2)) 혹은 dot * dot를 출력해주시면 답은 나옵니다. 간단한 문제라 점의 개수가 어떻게 증가하는지 여부만 파악한다면 쉽게 풀 수 있는 문제였습니다.

 

예제 실행 흐름
만약 n = 3을 입력받으면:
1. 초기 dot = 2.
2. 첫 번째 반복 (n = 2): dot = 2 * 2 - 1 = 3.
3. 두 번째 반복 (n = 1): dot = 3 * 2 - 1 = 5.
4. 세 번째 반복 (n = 0): dot = 5 * 2 - 1 = 9.
5. 최종적으로 dot = 9.
6. pow(dot, 2) = pow(9, 2) = 81.
7. 출력: 81.

반응형

'IT 프로그래밍 > C++' 카테고리의 다른 글

[따배시 11.1 c++] 상속의 기본1  (0) 2024.05.26
[c++] 2702번 초6 수학  (0) 2024.05.25
동적 메모리와 스마트 포인터  (0) 2024.05.20
c++ 포인터 설명  (0) 2024.05.17
[따배시 7.12]재귀적 함수 출력  (0) 2024.05.12