개발하는 kim-hasa

[c++][BOJ] 피보나치 함수 본문

Algorithm/BOJ

[c++][BOJ] 피보나치 함수

kim-hasa 2021. 10. 8. 20:51

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

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

특정 수에 대해서 재귀문을 돌렸을 때 0과 1이 출력되는 횟수를 구하는 문제입니다.

 

직접 재귀를 하기보다는 배열을 선언해서 미리 만들어두고, 특정 인덱스의 값을 구했습니다.

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int zcount[100] = {0};
int ocount[100] = {0};

int main()
{
    int k;
    cin >> k;
    
    for(int i=0; i<50; i++)
    {
        if(i == 0){
            zcount[i] = 1;
            ocount[i] = 0;
        }
        else if(i == 1){
            zcount[i] = 0;
            ocount[i] = 1;
        }
        else if(i == 2){
            zcount[i] = 1;
            ocount[i] = 1;
        }
        else{
            zcount[i] = zcount[i-2] + zcount[i-1];
            ocount[i] = ocount[i-2] + ocount[i-1];
        }
    }
    
    
    for(int j=0; j<k; j++)
    {
        int m;
        cin >> m;        
        cout << zcount[m] << ' ' << ocount[m] << '\n';
    }
}

'Algorithm > BOJ' 카테고리의 다른 글

[c++][BOJ] 파도반 수열  (0) 2021.10.11
[c++][BOJ] 팩토리얼 0의 개수  (0) 2021.10.08
[c++][BOJ] 숫자 카드 2  (0) 2021.09.30
[c++][BOJ] Hasing  (0) 2021.09.10
[c++][BOJ] 프린터 큐  (0) 2021.09.09