별의 공부 블로그 🧑🏻‍💻
728x90
728x170

문제

피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다. f(1) = f(2) = f(3) = 1이며 피보나치 비스무리한 수열을 나열하면 다음과 같다.

1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ...

자연수 n을 입력받아 n번째 피보나치 비스무리한 수열을 구해보자!

 

 

입력

자연수 n(1<=n<=116)이 주어진다.

 

 

출력

n번째 피보나치 비스무리한 수를 출력한다.

 

 

예제 입력 1

 10

 

예제 출력 1

 19

 

 

힌트

 

 

출처

High School > 선린인터넷고등학교 > 2017 선린 봄맞이 교내대회 I번

· 문제를 만든 사람: leehun456

 

 

코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    long long eq[120];   // int 자료형 X
 
    /*
     * f(n) = f(n-1) + f(n-3)
     * (1 <= n <= 116)
     * f(1) = 1, f(2) = 1, f(3) = 1
     */
 
     for (int i = 0; i <= 116; i++) {
         if (i == 0) eq[i] = 0;
         else if (i >= 1 && i <= 3) eq[i] = 1;
         else eq[i] = eq[i - 1+ eq[i - 3];        // f(n) = f(n-1) + f(n-3)  
     }
 
     cin >> n;
 
     cout << eq[n] << endl;
 
    return 0;
}r





피보나치 비스무리한 수열을 담을 배열의 자료형을 int 형식이 아닌 long long 형식으로 선언해야 함에 주의해야 한다.

그래야만 116번째까지의 피보나치 비스무리한 수열을 배열에 담을 수 있다.

728x90
그리드형(광고전용)

'Problem Solving > BaekJoon Online Judge' 카테고리의 다른 글

[BOJ1978][C++] 소수 찾기  (0) 2018.09.15
[BOJ12400][C++] Google語스  (0) 2018.09.08
[BOJ10174][C++] 팰린드롬  (0) 2018.09.08
[BOJ14490][C++] 백대열  (0) 2018.08.25
[BOJ15552][C++] 빠른 A+B  (1) 2018.08.18
[BOJ15953][C++] 상금 헌터  (0) 2018.08.15
[BOJ15964][C++] 이상한 기호  (0) 2018.08.15
[BOJ10988][C++] 팰린드롬인지 확인하기  (0) 2017.12.01
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️


📖 Contents 📖