You are on page 1of 4

exercitiul 1

#include <stdio.h>

int find(int decimal_number)


{
if (decimal_number == 0)
return 0;
else
return (decimal_number % 2 + 10 *
find(decimal_number / 2));
}

int main()
{
int n;
scanf ("%d",&n);
printf("%d", find(n));
return 0;
}

exercitiul 2

#include<stdio.h>

int Fibonacci(int);

int main()
{
int n, i = 0, c;

scanf("%d",&n);

printf("Fibonacci series\n");

for ( c = 1 ; c <= n ; c++ )


{
printf("%d\n", Fibonacci(i));
i++;
}

return 0;
}
int Fibonacci(int n)
{
if ( n == 0 )
return 0;
else if ( n == 1 )
return 1;
else
return ( Fibonacci(n-1) + Fibonacci(n-2) );
}

exercitiul 3
#include <stdio.h>
int factorialR( int n );
int combinariR( int n, int k );
int combinariF( int n, int k )
{
return factorialR( n ) / factorialR( k ) / factorialR( n-k );
}

int combinariR( int n, int k )


{
if ( k > n ) return 0;
if ( k == 0 || k == n ) return 1;
return combinariR( n-1, k ) + combinariR( n-1, k-1 );
}

int factorialR( int n )


{
int f;
if ( n <= 1 )
return 1;
return n * factorialR( n-1 );
}

int main( )
{
int N, K ;
printf("Enter a number N\n");
scanf("%d",&N);
printf("Enter a number K\n");
scanf("%d",&K);

printf( "- CombinariR( %d, %d ) = %d ", N, K, combinariR( N, K ) );


return 0;
}

1. exercitiul 4

#include <stdio.h>
int v[10], n;
int max(int i, int j) {
int a, b, m;
if (i == j)
return v[i];
else {
m = (i + j) / 2;
a = max(i, m);
b = max(m + 1, j);
if (a > b)
return a;
else
return b;
}
}
void main (void)
{
int i;
printf("n=");
scanf("%d",&n);
for (i=0;i<n;i++)
{
printf("a[%d]=",i);
scanf ("%d",&v[i]);

}
printf("maximul este %d\n", max(0, n-1));
}

Problema 5

#include <stdio.h>
int cmmdc(int st, int dr, int x[])
{
int m,m1,m2,r;
if(st==dr)
return x[st];
else
{
m=(st+dr)/2;
m1=cmmdc(st,m,x);
m2=cmmdc(m+1,dr,x);
r=m1%m2;
while(r)
{
m1=m2;
m2=r;
r=m1%m2;
}
return m2;
}
}
void main (void)
{
int n, x[100],i;
printf("n=");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
printf("a[%d]=",i);
scanf ("%d",&x[i]);

}
printf("CMMDC este %d\n", cmmdc(1,n,x));
}

You might also like