Professional Documents
Culture Documents
Fisa Recursivitate
Fisa Recursivitate
#include<iostream>
using namespace std;
int n,v[9999];
int minim (int v[],int n)
{
if(n==0)
return 32768;
else
if(v[n]%2==0)
if(v[n]<minim(v,n-1))
return v[n];
else
return minim(v,n-1);
else
return minim (v,n-1);
}
void cifpar (int a[], int x, int &k)
{
if(x)
{
if(((a[x]/10)%10)%2==0&&a[x]>9)
k++;
cifpar(a,x-1,k);
}
}
int ordonat (int a[], int x)
{
if(x)
{
for(int i=1;i<=n;i++)
if(a[x]<a[x-1])
return 0;
ordonat(a,x-1);
}
}
void cifre (int a[], int x)
{
int k=0,y;
if(y)
{
k=0;
y=a[x];
while(y!=0)
{
k++;
y/=10;
}
if(k%2==0)
cout<<a[x]<<" ";
cifre(a,x-1);
}
}
int paritate (int a[], int x)
{
if(x>1)
{
if((a[x]%2==0&&a[x-1]%2!=0)||(a[x]%2!=0&&a[x-1]%2==0))
return 0;
paritate(a,x-1);
}
}
void afis(int x, int a[])
{
int u,y;
if(x)
{
afis(x-1,a);
y=a[x]; u=a[x]%10;
while(y>9) y=y/10;
if(u==y)
cout<<a[x]<<" ";
}
}
void inloc (int a[], int x, int minn)
{
if(x)
{
if(a[x]>9)
a[x]=minn;
inloc(a,x-1,minn);
}
}
int main()
{
int k=0;
cout<<"n: "; cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
cout<<"\nMinimul dintre elementele pare ale vectorului: "<<minim(v,n)<<endl;
cout<<"\nNumarul de elementele care au cifra zecilor para: "; cifpar(v,n,k);
cout<<k<<endl;
if(ordonat(v,n))
cout<<"\nVectorul este orodonat crescator";
else
cout<<"\nVectorul NU este orodonat crescator";
cout<<endl;
cout<<"\nElementele care au numar par de cifre: "; cifre(v,n); cout<<endl;
if(paritate(v,n))
cout<<"\nToate elementele vectorului au aceeasi paritate";
else
cout<<"\nElementele vectorului NU au aceeasi paritate";
cout<<endl;
cout<<"\nElementele care au prima cifra egala cu ultima: "; afis(n,v); cout<
<endl;
int minn=minim(v,n); inloc(v,n,minn);
cout<<"\nElementele vectorului in urma inlocuirii cu minimul par: ";
for(int i=1;i<=n;i++)
cout<<v[i]<<" ";
}
II.
#include<iostream>
#include<math.h>
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
suma(n,a,s); cout<<"\nSuma elementelor de pe prima linie al caror invers est
e par: "<<s<<endl;
prim(0,0,a,k); cout<<"\nNumarul de elemente prime: "<<k;
cout<<"\nElementele prime de pe diagonala principala: "; palindrom(n,a);
}