Recursivitate (numar factorial, algoritmul lui Euclid recursiv, sirul lui Fibonacci)

În informatică, recursivitatea sau recursia este un mod de a defini unele funcții. Funcția este recursivă, dacă definiția ei folosește o referire la ea însăși, creând la prima vedere un cerc vicios, care însă are o condiție de oprire.

Calculul valorii n!

#include "stdio.h"
#include "conio.h"
void main(void)
{
  int n;
  int fact(int);
  scanf("%d",&n);
  printf("%d !=%d",n,fact(n));
  getch();
}

int fact(int n)
{
  if (!n)
    return 1;
  else
    return (n*fact(n-1));
}

Algoritmul lui Euclid recursiv

#include "stdio.h"
#include "conio.h"
void main(void)
{
  int m,n;
  int cmmdc(int,int);

  scanf("%d %d",&m,&n);
  printf("cmmdc dintre %d si %d este %d",m,n,cmmdc(m,n));
  getch();
}

int cmmdc(int m,int n)
{
  if (n==0)
    return (m);
  else
    return cmmdc(n,m%n);
}

Sa se genereze primele N numere din sirul lui Fibonacci
Să se genereze primele n numere din şirul lui Fibonacci. Acesta se defineşte recurent astfel:
Fib(0)=Fib(1)=1;
Fib(n)=Fib(n-1)+Fib(n-2), pentru n>=2.


#include "stdio.h"
#include "conio.h"
void main(void)
{
  int i,n;
  int fib(int);
  //declarăm prototipul funcţiei recursive ce calculează fiecare termen
  //al şirului lui Fibonacci
  scanf("%d",&n);
  for(i=0;i < n;i++)     printf("fib[%d]=%d\n",i,fib(i));   getch(); } int fib(int n) {   if((n==0)||(n==1))     return(1);   else     return(fib(n-1)+fib(n-2)); }

Leave a Reply

Your email address will not be published. Required fields are marked *

seventeen + thirteen =

Time limit is exhausted. Please reload CAPTCHA.