Pagini recente » Cod sursa (job #1583377) | Cod sursa (job #734624) | Cod sursa (job #148802) | Cod sursa (job #848473) | Cod sursa (job #1425901)
#include <stdio.h>
#include <stdlib.h>
FILE *fin,*fout;
int** buildConstantMatrix() {
int i;
int **ct = (int **)malloc(2*sizeof(int*));
for(i=0;i<2;i++) {
ct[i] = (int *)malloc(2*(sizeof(int*)));
}
ct[0][0]=0;
ct[0][1]=1;
ct[1][0]=1;
ct[1][1]=1;
return ct;
}
void computeFibonacci(long long int n) {
long long int fib[1][2];
int **ct = buildConstantMatrix();
int i,j,sum;
fib[0][0]=1;
fib[0][1]=1;
n=n-2;
while(n--) {
for(i=0;i<2;i++) {
sum=0;
for(j=0;j<2;j++) {
sum += fib[0][j]*ct[j][i];
}
}
fib[0][0]=fib[0][1];
fib[0][1]=sum;
}
fprintf(fout,"%lld",(fib[0][1])%666013);
}
int main(void)
{
long long int n;
fin=fopen("kfib.in","r");
fout=fopen("kfib.out","w");
fscanf(fin,"%lld",&n);
computeFibonacci(n);
return 0;
}