피보나치(Fibonacci)
백준 2502번 : 떡 먹는 호랑이
cepiloth
2018. 6. 17. 16:11
반응형
https://www.acmicpc.net/problem/2502
1. 문제 요약
피보나치 응용 문제
2. 알고리즘
피보나치 수열을 구하고 입력 받은 k 의 차이 값을 구한다.
3. 코드
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 37 38 39 40 41 42 43 44 | #include <iostream> #include <sstream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <list> #include <queue> #include <map> using namespace std; int main() { std::ios::sync_with_stdio(false); cin.tie(0); int fib[31] = {0,}; int d, k; cin >> d >> k; fib[1]=fib[2] = 1; for(int i=3;i<=d;++i) { fib[i] = fib[i-1] + fib[i-2]; } int c1 = fib[d-2]; int c2 = fib[d-1]; for(int i=1;;++i) { int a = i; if((k-c1*a)%c2) continue; int b = (k-c1*a)/c2; if(a>b) { swap(a,b); } cout << a << "\n"; cout << b << "\n"; break; } return 0; } | cs |
반응형