Pagini recente » Cod sursa (job #1631756) | Cod sursa (job #941147) | Cod sursa (job #1951063) | Cod sursa (job #1957957) | Cod sursa (job #1425899)
#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;
printf("(%d %d)",fib[0][0],fib[0][1]);
printf("\n\n\n");
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;
}