Cod sursa(job #3136361)

Utilizator gal1l30Cristea Darius-Luca gal1l30 Data 6 iunie 2023 00:12:58
Problema Al k-lea termen Fibonacci Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>
#include <math.h>

long double CONSTANT = 666013.0;

long double LogNPower(long double base, long long int exponent) {
    long double result = 1;

    for(long long int index = 1; index <= exponent; index <<= 1) {
        if(exponent & index) {
            result  = fmod((result * base), CONSTANT);
        }

        base = fmod((base * base), CONSTANT);
    }

    return result;
}

long double kThFibonacci(long long int Kth) {

    return ((1. / sqrt(5.)) * (LogNPower((1. + sqrt(5.)) / 2., Kth) - LogNPower((1. - sqrt(5.)) / 2., Kth)));
}

int main() {
    long long int Kth;

    freopen("kfib.in","r",stdin);
    freopen("kfib.out","w",stdout);

    scanf("%lld", &Kth);

    printf("%Lf", kThFibonacci(Kth));

    return 0;
}