반응형
문제
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 |