Orar semigroup #2

Orar semigroup #2

28 martie - recursiva 15 + Temă 22,23,24

Problema 15

#include<iostream>
using namespace std;
int a,b,n;
double A(int);
double B(int);
   
int main()
{int i;
cout<<"a=";cin>>a;
cout<<"b=";cin>>b;
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
{cout<<A(i)<<" "<<B(i);
cout<<endl;}
}

double A(int n)
{if(n==0)
    return a;
else return (A(n-1)+B(n-1))/2;
}

double B(int n)
{if(n==0)
    return b;
else return sqrt(A(n-1)*B(n-1));
}
22, 23, 24
#include<iostream>
using namespace std;
int p=0;
int s=0;

void afisare(int n, int i)
{
    if(n%i==0)
        cout<<i<<" ";
    if(i<=n)
        afisare(n,++i);
}

int numarare(int n, int i)
{
    if(n%i==0)
        p++;
    if(i<=n)
        numarare(n,++i);
return p;
}

int suma(int n, int i)
{
    if(n%i==0)
        s=s+i;
    if(i<=n)
        suma(n,++i);
return s;
}

int main()
{int n,i=1;
cin>>n;
afisare(n,i);
cout<<endl<<"NR DIVIZORI "<<numarare(n,i)<<endl;
cout<<"SUMA DIVIZORILOR "<<suma(n,i);
}

miercuri, 30 martie 2011 by DlMuresan
Categories: , , , , | Leave a comment

Triunghiul lui Pascal

#include<iostream>
using namespace std;

int vectori(int n, int k)
{int v[100], u[100], i, j, t;
v[0]=1;
for(i=0;i<n;i++)
    if(i==0)
        u[i]=0;
    else u[i]=v[i]+v[i-1];
}

int main()
{int k,t,i=0,j=0,n,a[100][100]={0},nn,kk;
cin>>n;
for(i=0;i<n;i++)
    for(j=0;j<=i;j++)
        if(j==0)
            a[i][j]=1;
        else a[i][j]=a[i-1][j]+a[i-1][j-1];

for(k=0;k<n;k++)
    {for(t=0;t<k+1;t++)
        cout<<a[k][t]<<" ";
    cout<<endl;}
    cout<<"citire"<<endl;
    cin>>nn>>kk;
    cout<<"Combinari de "<<nn<<" luate cate "<<kk<<"="<<a[nn][kk];
}

marți, 29 martie 2011 by DlMuresan
Categories: , , | Leave a comment

Fişă Funcţii Recursive - 21 martie 2011 (1-10, 14)

#include<iostream>
using namespace std;
void afisaren1(int n)
{
cout<<n<<" ";
n--;
if(n!=0)
    afisaren1(n--);
}

void afisare1n(int i, int n)
{
if(i<=n){
    cout<<i<<" ";
afisare1n(i+1,n);}
}

int factorial(int n)
{
    if(n==0)
        return 1;
    else return n*factorial(n-1);
}

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

int produs(int a, int b)
{int i=1;
    if(b==0)
        return 0;
    else return a+produs(a,b-1);
}

int putere(int a, int b)
{   int i=0,bb;
bb=b;
if(b==0)
    return 1;
if(i<=bb)
{bb--;
return a*putere(a,bb);
}
}

void impartire(int a, int b, int &rest, int &c)
{
    if(a-b>0)
        {c++;
    impartire(a-b,b,rest,c);}

rest=a-(c*b);
if(rest==b)
    {rest=0;c++;}
}

void descompunere(int n, int i, int j)
{
cout<<i<<"+"<<j<<endl;
if(i<n-1)
    descompunere(n,i+1,j-1);
}

int combinari(int n, int k)
{
if(k==0)
    return 1;
else return (n*combinari(n-1,k-1))/k;
}

int combinari2(int n, int k)
{if(k==0 || k==n)
    return 1;
else return combinari2(n-1,k)+combinari2(n-1,k-1);
}

void cifre(int n)
{if(n!=0)
    cout<<n%10<<endl;
if(n!=0)
    cifre(n/10);
}

int sumacifre(int n)
{if(n==0)
    return 0;
else return n%10+suma(n/10);
}

int baza(int n, int b)
{
if(n==0)
    return 0;
else return (n%b)+baza(n/b,b)*10;
}

int main()
{int n,a,b,rest,c=0,i=1,j,beta=1,k,bb;
cout<<"baza";
cin>>bb;
cout<<"n=";
cin>>n;
j=n-1;
cout<<"k=";
cin>>k;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
cout<<"Afisare de la 1 la "<<n<<endl;
afisare1n(i,n);
cout<<endl;
cout<<"Afisare de la "<<n<<" la 1"<<endl;
afisaren1(n);
cout<<endl;
cout<<"Afisare "<<n<<" factorial"<<endl;
cout<<factorial(n)<<endl;
cout<<"Suma primelor "<<n<<" numere naturale"<<endl;
cout<<suma(n)<<endl;
cout<<"Produs("<<a<<","<<b<<")"<<endl;
cout<<produs(a,b)<<endl;
cout<<"Putere "<<a<<" la "<<b<<endl;
cout<<putere(a,b)<<endl;
cout<<"Impartire "<<a<<" la "<<b<<endl;
impartire(a,b,rest,c);
cout<<"cat="<<c<<" "<<"rest="<<rest<<endl;
cout<<"DESCOMPUNERE "<<n<<endl;
descompunere(n,i,j);
cout<<"Combinari("<<n<<","<<k<<")"<<endl;
cout<<combinari(n,k)<<endl;
cout<<"Combinari2("<<n<<","<<k<<")"<<endl;
cout<<combinari2(n,k)<<endl;
cout<<"Afisare cifre"<<endl;
cifre(n);
cout<<"Suma cifrelor"<<endl;
cout<<sumacifre(n)<<endl;
cout<<"Baza 2"<<endl<<n<<"(10)="<<baza(n,bb)<<"(2)"<<endl;
}

joi, 24 martie 2011 by DlMuresan
Categories: , , , | Leave a comment

Funcţii recursive - Temă 18 martie

Factorial

#include<iostream>
using namespace std;
int factorial(int n)
{if(n==0)
    return 1;
else return n*factorial(n-1);
}

int main()
{int n;
cin>>n;
cout<<factorial(n);
}
Cmmdc provaidat de algoritmul d-lui Euclid
#include<iostream>
using namespace std;
int cmmdc(int a, int b)
{ if(b==0)
    return a;
else return cmmdc(b, a%b);
}

int main()
{int a,b;
cin>>a>>b;
cout<<cmmdc(a,b);
}
Să se afişeze toate prefixele unui numar natural n
#include<iostream>
using namespace std;
void prefix(int n)
{if(n!=0)
    cout<<n<<endl;
prefix(n/10);
}

int main()
{int n;
cin>>n;
prefix(n);
}
Suma cifrelor unui număr
#include<iostream>
using namespace std;
int suma(int n)
{if(n==0)
    return 0;
else return n%10+suma(n/10);
}

int main()
{int n;
cin>>n;
cout<<suma(n);
}
Numărul de cifre impare dintr-un număr
#include<iostream>
using namespace std;
int nrimp(int n)
{if(n==0)
    return 0;
else return n%2+nrimp(n/10);
}

int main()
{int n;
cin>>n;
cout<<nrimp(n);
}

joi, 17 martie 2011 by DlMuresan
Categories: , , , | Leave a comment

Tabla 'multirii + TEMĂ 17 martie

Să se afişeze tabla 'mulţirii. BAC?

#include<iostream>

using namespace std;
void citire(int &n)
{cin>>n;
}
void afisare(int n)
{int i;
for(i=1;i<=n;i++)
cout<<n<<"*"<<i<<"="<<n*i<<endl;
}
int main()
{int n;
citire(n);
afisare(n);
}

Să se afişeze toate numerele de 3 cifre care sunt divizibile cu produsul divizorilor lor.
#include<iostream>
using namespace std;

char* verificare(int n)
{int nn,i,p,c;
p=1;
nn=n;
while(n)
{   c=n%10;
    p=p*c;
    n=n/10;
}
if(nn%p==0)
    return "DA";
else return "NU";
}

int main()
{int n,i=1,nn,ok;
for(n=1000;n<INT_MAX;n++)
{    nn=n;
    ok=1;
    while(nn)
{        if(nn%10==0)
            ok=0;
        nn=nn/10;
}
    if(ok==1)
        if(verificare(n)=="DA")
            {cout<<n<<endl;
            i++;}
          
    if(i>10)
        break;
}
}

by DlMuresan
Categories: , , , | Leave a comment