Cod sursa(job #2711919)

Utilizator KOTOAMATSUKAMIDistinguished Heavenly Gods KOTOAMATSUKAMI Data 24 februarie 2021 21:28:33
Problema Al k-lea termen Fibonacci Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include <bits/stdc++.h>
using namespace std;

int main() {
    ifstream fin("kfib.in");
    ofstream fout("kfib.out");

    int n;
    fin >> n;

    pair <int, int> fib (int n) {
        if (!n) return {0, 1};
        auto p = fib(n >> 1);
        int c = p.first * (2 * p.second - p.first),
            d = p.first * p.first + p.second * p.second;
        
        return (n & 1) ? {d, c + d} : {c, d};
    }   

    fout << fib(n).first;
    return 0;
}