티스토리 뷰

Algorithm/BOJ

9009 피보나치

henry1214 2018. 7. 3. 22:18

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



그리디하게 가장 큰 피보나치 수부터 차례대로 정해 나간다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdio>
#include <stack>
using namespace std;
 
int t,n,f[45];
 
int main()
{
    f[1]=1;
    for(int i=2;i<45;i++) f[i]=f[i-1]+f[i-2];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        stack<int> s;
        for(int i=44;i>=1;i--)
            if(n>=f[i]) s.push(f[i]),n-=f[i];
        while(!s.empty()) printf("%d ",s.top()),s.pop();
        printf("\n");
    }
    return 0;
}
cs


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

1924 2007년  (0) 2018.07.09
9375 패션왕 신해빈  (0) 2018.07.04
15789 CTP 왕국은 한솔 왕국을 이길 수 있을까?  (0) 2018.06.27
2688 줄어들지 않아  (0) 2018.06.08
11497 통나무 건너뛰기  (0) 2018.06.07
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday