Teoria recursiilor

Imagine preview
(7/10 din 1 vot)

Acest laborator prezinta Teoria recursiilor.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier docx de 22 de pagini .

Profesor: no comeny

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domeniu: Cibernetica

Extras din document

Problema 1. Numere Fibonacci.

Să se alcatuiască un Program în C++ pentru a determina numerele Fibonacci atit recursiv cît și nerecursiv.

#include <iostream>

using namespace std;

int main()

{

int n;

cout << "n = ";

cin >> n;

int nr_2, nr_1, nr_0;

nr_0 = 1;

nr_1 = 1;

cout << nr_0 << "n" << nr_1 << "n";

for(int i = 3; i <= n; i++)

{

nr_2 = nr_1 + nr_0;

nr_0 = nr_1;

nr_1 = nr_2;

cout << nr_2 << "n";

}

return 0;

}

Program recursiv

#include<iostream>

using namespace std;

int fibonacci(int n)

{

if((n==1)||(n==0))

{

return(n);

}

else

{

return(fibonacci(n-1)+fibonacci(n-2));

}

}

int main()

{

int n,i=0;

cout<<"Introduceti numarul de termeni pentru seria Fibonacci:";

cin>>n;

cout<<"nSeria Fibonacci esten";

while(i<n)

{

cout<<" "<<fibonacci(i);

i++;

}

return 0;

}

Problema 2. Numere Fibonacci și sectiunea de aur.

Să se alcatuiască un Program care din numerele Fibonacci calculeaza numarul de aur.

#include<stdio.h>

int main()

{

int n,i,a,b,c,p;

printf("Introduceti numarul n al seriei: ");

scanf("%d",&n);

i=1;

a=0;

b=1;

while(i<=n)

{

printf("%d ",a);

c = a + b;

a = b;

b = c;

i++;

}

p=a/b;

printf("Numarul de aur este %lf", p);

return 0;

}

Problema 3. Șir master.

Se dă șirul de numere 1, 1, 2, 3, 7, 23, 164...

Să se determine formula de recurenta si sa se scrie program varianta recursivă și nerecursivă.

#include <stdio.h>

#include <iostream.h>

int Masr(int n){

if (n==0 || n==1) return 1;

if (n==2) return 2;

if (n>2) return Masr(n-1)*Masr(n-2)+Masr(n-3);

}

int main(){

int n,k;

cout<<"n=";

cin>>n; cout<<"Sirul Master 2018 este: ";

for(k=0;k<n;k++)

cout<<Masr(k)<<" ";

return 0;

}

Problema 4. Factorialul unui număr.

Să se scrie o funcție C++ recursivă care returnează factorialul unui număr dat ca parametru.

Program nerecursiv

#include <iostream>

using namespace std;

int main()

{

int n,i,p=1;

cout<<"Dati n="; cin>>n;

for (i=2; i<=n; i++)

p=p*i;

cout <<p<< " Factorialul numarului introdus este="

<<p<< endl;

return 0;

}

Program recursiv

#include<iostream.h> //FACTORIAL

int n;

int fact(int x)

{if ((x<=1)) //condiția de oprire

return 1;

else

return (x*fact(x-1)); //autoapelul functiei

}

int main()

{

cout<<"n="; cin>>n;

cout<<"n!="<<fact(n); //apelul functiei

}

Problema 5. Suma elementelor sirului.

Se dă șirul de numere 1, 5, 9, 13, 17, 21,...

Sa se scrie un program varianta recursivă și nerecursivă pentru determinarea sumei elementelor acestui sir.

Fisiere in arhiva (1):

  • Teoria recursiilor.docx