Sunteți pe pagina 1din 10

Ministerul Educației, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică și Microelectronică

Raport
Analiza şi proiectarea algoritmilor
Numerele lui Fibonacci

Lucrarea de laborator nr.1

A efectuat : Belii Daniela


Grupa : SI-191

Chisinau 2020
CONDITIILE

#include <iostream>

int fib(int n){


if ((n==1)||(n==0))
return n;
else
return fib(n-1)+fib(n-2);
}

int main(){
int a;
std::cout << "Introduceti numarul: ";
std::cin >> a;
std::cout << fib(a-1);
}
2

#include <iostream>

int fib(int n){


int i=1,j=0;
for (int k=1;k<n;k++){
j=i+j;
i=j-i;
}
return j;
}

int main(){
int a;
std::cout << "Introduceti numarul: ";
std::cin >> a;
std::cout << fib(a);
}
3

#include <iostream>

int fib(int n){


int i=1,j=0,k=0,h=1;
int t;
while(n>0){
if (n%2!=0){
t = j*h;
j = i*h+j*k+t;
i = i*k+t;

}
t = h*h;
h=2*k*h+t;
k=k*k+t;
n/=2;
}
return j;
}

int main(){
int a;
std::cout << "Introduceti numarul: ";
std::cin >> a;
std::cout << fib(a-1);
}
Functia main

int main(void)
{
printf("Introduceti numarul de teste: ");
int t;

scanf("%d", &t);
double result_matrix[t][4];

int n;
int i = 0;
clock_t start, end;

while(i < t)
{
printf("Introduceti n: ");
scanf("%d", &n);
result_matrix[i][3] = n;

start = clock();
fib(n);
end = clock();

result_matrix[i][0] = ((double)end - (double)start) / (double)CLOCKS_PER_SEC;

start = clock();
fib1(n);
end = clock();

result_matrix[i][1] = ((double)end - (double)start) / (double)CLOCKS_PER_SEC;

start = clock();
fib2(n);
end = clock();

result_matrix[i][2] = ((double)end - (double)start) / (double)CLOCKS_PER_SEC;

i++;
}

printf("\n- Rezultat -------------------------------------------------\n");


printf("|\t N|\t fib1 |\t fib2 |\t fib3 |\n");
printf("------------------------------------------------------------\n");
for(int i = 0; i < t; i++)
{
printf("|%10d|", (int)result_matrix[i][3]);
for (int j = 0; j < 3; j++)
{
printf("%10f sec |", result_matrix[i][j]);
}
printf("\n------------------------------------------------------------\n");
}

return (0);
}

Rezultatul executiei
Reprezentarea grafica:

fib
fib 1
fib 2
functiile suprapuse

CONCLUZIE:
In urma elaborarii acestei lucrarii de laborator ,utilizand metoda empirica de analiza ,am
realizat 3 algoritmi de calcul si am observant ca cel mai lent este sub nr 1. Algoritmele nr 2 si
nr 3 utilizeaza un numar de iteratii mai mic astfel, castiga timp si memorie .

S-ar putea să vă placă și