Advertisement
Guest User

Fibonacci

a guest
Jun 3rd, 2015
7,299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.46 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. typedef long long ll;
  4. using namespace std;
  5.  
  6. const ll MOD = 1000000007;
  7. unordered_map<ll,ll> Fib;
  8.  
  9. ll fib(ll n)
  10. {
  11.     if(n<2) return 1;
  12.     if(Fib.find(n) != Fib.end()) return Fib[n];
  13.     Fib[n] = (fib((n+1) / 2)*fib(n/2) + fib((n-1) / 2)*fib((n-2) / 2)) % MOD;
  14.     return Fib[n];
  15. }
  16.  
  17. int main()
  18. {
  19.     while(true)
  20.     {
  21.         ll N;
  22.         cin >> N;
  23.         if(N<0) return 0;
  24.         cout << fib(N) << "\n";
  25.     }
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement