Algorithm/백준(BOJ)

[백준 1003] 피보나치 함수

반응형
[백준 1003] 피보나치 함수

문제 출처 : https://www.acmicpc.net/problem/1003



피보나치를 이용해서 fibonacci(0)과 fibonacci(1)의 출력 개수 구하기


피보나치가 이루어지는 과정은 점화식으로 아래와 같이 나타낼 수 있다.


1
fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)
cs


클래스로 만들어 zero와 one의 값을 저장시킬 수 있도록 만들었다.


0과 1일 때만 초기값을 정해주면, 2부터는 점화식을 이용해서 값을 얻어낼 수 있다.



  • 전체 소스 코드
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
28
29
30
31
32
33
34
35
36
#include <iostream>
 
using namespace std;
class xy
{
public :
    int zero;
    int one;
};
 
int main()
{
    int N;
    cin >> N;
    
    xy myxy[41];
    myxy[0].one = 0;
    myxy[0].zero = 1;
    myxy[1].zero = 0;
    myxy[1].one = 1;
 
    for (int i = 2; i < 41; i++)
    {
        myxy[i].one = myxy[i - 1].one + myxy[i - 2].one;
        myxy[i].zero = myxy[i - 1].zero + myxy[i - 2].zero;
    }
 
 
    for (int i = 0; i < N; i++) {
 
        int M;
        cin >> M;
        
        cout << myxy[M].zero << " " << myxy[M].one << endl;
    }
}
cs


반응형

'Algorithm > 백준(BOJ)' 카테고리의 다른 글

[백준 11047] 동전 0  (0) 2018.06.01
[백준 9012] 괄호  (0) 2018.05.16
[백준 9095] 1, 2, 3 더하기  (0) 2018.05.03
[백준 1932] 숫자 삼각형  (0) 2018.05.02
[백준 1475] 방 번호 - java로 풀기  (0) 2018.04.21