티스토리 뷰
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 |