Cod sursa(job #3130204)
Utilizator | Data | 17 mai 2023 01:08:24 | |
---|---|---|---|
Problema | Al k-lea termen Fibonacci | Scor | 20 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#define MOD 666013
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
long fibonacciModulo(long long n, int m)
{
// Getting the period
long pisanoPeriod = 1190833032;
n = n % pisanoPeriod;
long prev = 0;
long curr = 1;
if(n == 0)
return 0;
else
if(n == 1)
return 1;
for(int i = 0; i < n - 1; i++)
{
long temp = 0;
temp = curr;
curr = (prev + curr) % m;
prev = temp;
}
return curr % m;
}
int main()
{
int n;
f >> n;
g << (fibonacciModulo(n, MOD));
return 0;
}