코드
#include <iostream>
using namespace std;
typedef long long ll;
ll n, k[82];
int main() {
cin >> n;
if(n == 1) {
cout << 4 << '\n'; // 1인 경우 출력 후 바로 종료
return 0;
}
k[1] = 1;
k[2] = 1;
for(int i = 3; i < n + 1; i++) {
k[i] = k[i - 1] + k[i - 2];
}
cout << 2*(k[n]+k[n-1] +k[n-1] + k[n-2]) << '\n';
return 0;
}
한 변의 길이는 피보나치 수열의 규칙을 따르고, 둘레는 2*(k[n] + 2*[n - 1] + k[n - 2])로 구해주면 된다. 이 규칙에 어긋나는 수가 하나 있는데, 1이다. 1은 바로 처리해주면 된다.
'백준' 카테고리의 다른 글
[백준] 14916번 거스름돈 C++ 코드 (0) | 2024.07.27 |
---|---|
[백준] 9655번 돌 게임 C++ 코드 (0) | 2024.07.27 |
[백준] 9625번 BABBA C++ 코드 (0) | 2024.07.27 |
[백준] 2108번 통계학 C++ 코드 (0) | 2024.07.27 |
[백준] 1913번 달팽이 C++ 코드 (0) | 2024.07.27 |