Pagini recente » Cod sursa (job #2558905) | Borderou de evaluare (job #1291266) | Borderou de evaluare (job #1292743) | Cod sursa (job #1800293) | Cod sursa (job #1322405)
#include <stdio.h>
long long *a;
////keeps window open
//void keepwindowopen()
//{
// printf("\n");
// printf("Press e key to continue...");
// char s[2] = "";
// _getch(s);
//}
//computes the xth term of the fibbonacci series
long long fibo(int x)
{
if (x == 0) return 0;
if (x == 1 || x == 2)
return 1;
else
{
long long b = 0;
if (a[x] != 0)
return a[x];
else
b = fibo(x - 1) + fibo(x - 2);
a[x] = b;
return b;
}
}
long long* init(int s)
{
long long *a;
a = (long long*)malloc((s + 1) * sizeof(long long));
int i;
for (i = 0; i < s+1; i++)
a[i] = 0;
return a;
}
int main()
{
int x;
long long fx;
FILE *pf;
pf = fopen("kfib.in", "r");
fscanf(pf,"%d", &x);
fclose(pf);
/*printf("introduceti termenul: ");
scanf_s("%d", &x);*/
a = init(x);
fx = fibo(x);
printf("the %dth term is: %lld", x, fx);
//keepwindowopen();
pf = fopen("kfib.out", "w");
fprintf(pf, "%lld", fx);
fclose(pf);
free(a);
return 0;
}