Cod sursa(job #2516258)

Utilizator Cristian25Cristian Stanciu Cristian25 Data 30 decembrie 2019 20:26:52
Problema Al k-lea termen Fibonacci Scor 5
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdio.h>
#include <stdlib.h>
#define m 666013

typedef unsigned long long ull;

ull* f;

ull fibo(ull n)
{
    #define ternary(a, b, c) ((a) ? (b) : (c))
    return ternary(f[n], f[n], ternary(n <= 1, n, f[n] = (fibo(n - 1) % m + fibo(n - 2) % m) % m));
}

int main(void)
{
    FILE* pf;
    do{
        pf = fopen("kfib.in", "r");
    }while(pf == NULL);
    ull n;
    fscanf(pf, "%llu", &n);
    fclose(pf);
    do{
        pf = fopen("kfib.out", "w");
    }while(pf == NULL);
    do{
        f = (ull*)calloc(1e8, sizeof(ull));
    }while(f == NULL);
    fprintf(pf, "%llu", fibo(n));
    fclose(pf);
    return 0;
}