Sei sulla pagina 1di 21

PROBLEME ATESTAT

Problema 1
#include<iostream>
#include<fstream>

using namespace std;

int par(int x)
{
int nr=0;
while(x>0)
{
if(x%10%2==0) nr++;
x=x/10;
}
return nr;
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,v[30],p,k,gasit,i,j;
f>>n>>p>>k;
for(i=1;i<=n;i++)
f>>v[i];

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

if(v[i]%p==k)
cout<<v[i]<<" ";

cout<<endl;
for(i=1;i<=n;i++)
cout<<par(v[i])<<" ";

gasit=1;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]==v[j]) gasit=0;

if(gasit==1) g<<"ELEMENTELE SUNT DISTINCTE.";


else g<<"ELEMENTELE NU SUNT DISTINCTE.";

f.close();
g.close();
return 0;
}
Fisier intrare:
753
2643 541 97 238 242 33 4682

Problema 2
#include<iostream>
#include<fstream>

using namespace std;

void pozitie(int n, int v[30])


{
int min,pmin,i;
min=v[1];
pmin=1;
for(i=1;i<=n;i++)
if(v[i]<min)
{
min=v[i];
pmin=i;
}
cout<<pmin<<endl;
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,v[30],gasit,i,j,d,k;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];

for(i=1;i<=n;i++)
cout<<v[i]/10%10<<" ";

cout<<endl;
pozitie(n,v);

gasit=0;

for(i=1;i<n;i++)
{
k=0;
for(d=2;d<=v[i]/2;d++)
if(v[i]%d==0) k++;
if(k==0 && v[i]>=100 && v[i]<=999)
{
g<<v[i]<<" ";
gasit=1;
}
}

if(gasit==0) g<<"NU EXISTA NUMERE PRIME DE TREI CIFRE";

return 0;
}

Fisier intrare
7
239 1541 163 8 1531 19 23

Probema 3
#include<iostream>
#include<fstream>

using namespace std;

void ordine(int n, int v[30])


{
int i,gasit;

gasit=1;
for(i=1;i<n;i++)
if(v[i]<v[i+1])
gasit=0;

if(gasit==1)
cout<<"DA";
else
cout<<"NU";
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,v[30],gasit,i,s,d;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];

for(i=1;i<=n;i++)
{
s=0;
for(d=1;d<=v[i];d++)
if(v[i]%d==0) s=s+d;

cout<<s<<" ";
}

cout<<endl;

ordine(n, v);

gasit=0;
for(i=1;i<n;i++)
if(v[i]==2*v[i+1])
{
g<<v[i]<<" "<<v[i+1]<<endl;
gasit=1;
}

if(gasit==0) g<<"NU EXISTA ASTFEL DE NUMERE!";

return 0;
}
Fisier intrare
7
139 70 35 27 242 121 23

Problema 4
#include<iostream>
#include<fstream>

using namespace std;

void interschimbare(int n, int v[30])


{
int i,min,max,pmin,pmax,aux;
min=v[1];
pmin=1;

max=v[1];
pmax=1;
for(i=1;i<=n;i++)
{
if(v[i]<min)
{
min=v[i];
pmin=i;
}
if(v[i]>max)
{
max=v[i];
pmax=i;
}
}

aux=v[pmin];
v[pmin]=v[pmax];
v[pmax]=aux;

for(i=1;i<=n;i++)
cout<<v[i]<<" ";
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,v[30],i,aux,s;
f>>n;

for(i=1;i<=n;i++)
f>>v[i];

for(i=1;i<=n;i++)
if(v[i]%2==1 && i%2==0)
cout<<v[i]<<" ";

for(i=1;i<=n;i++)
{
aux=v[i];
while(aux>0)
{
s=0;
while(aux>0)
{
s=s+aux%10;
aux=aux/10;
}
if(s>9) aux=s;
}
g<<s<<" ";
}

cout<<endl;
interschimbare(n, v);
return 0;
}

Fisier intrare:
7
248 326 27 165 7231 546 190

Problema 5
#include<iostream>
#include<fstream>

using namespace std;

void maxim(int n, int v[30])


{
int i,max,s=0;
max=v[1];
for(i=1;i<=n;i++)
if(v[i]>max)
max=v[i];

while(max)
{
s=s+max%10;
max=max/10;
}
cout<<s<<endl;
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");

int n,v[30],i,aux,gasit,crescator;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];

for(i=1;i<=n;i++)
if(v[i]%2==1 && v[i]%3==0)
cout<<v[i]<<" ";

cout<<endl;
maxim(n,v);

gasit=0;
for(i=1;i<=n;i++)
{
aux=v[i];
crescator=1;
while(aux>0)
{
if(aux%10<=aux/10%10) crescator=0;
aux=aux/10;
}
if(crescator==1)
{
g<<v[i]<<" ";
gasit=1;
}
}

if(gasit==0) g<<"NU EXISTA NUMERE CU TOATE CIFRELE IN ORDINE STRICT


CRESCATOARE";

return 0;
}
Fisier intrare:
7
561 162 35 28 9306 321 33

Problema 6:
#include<iostream>
#include<fstream>

using namespace std;

int rast(int n)
{
int inv=0;
while(n>0)
{
inv=inv*10+n%10;
n=n/10;
}
return inv;
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,v[30],i,gasit,c;
f>>n>>c;
for(i=1;i<=n;i++)

f>>v[i];

for(i=1;i<=n;i++)
if(v[i]%10==c)
cout<<v[i]<<" ";

cout<<endl;
for(i=1;i<=n;i++)
if(v[i]%2==1)
cout<<rast(v[i])<<" ";

gasit=0;
for(i=1;i<=n;i++)
if(v[i]>99 && v[i]<1000 & v[i]/100==v[i]%10)
{
gasit=1;
g<<v[i]<<" ";
}

if(gasit==0)
g<<"NU EXISTA NUMERE PALINDROM DE 3 CIFRE";

f.close();
g.close();
return 0;
}
Fisier intrare:
10 3
13 797 25 303 482 12321 72 46 282 31

Problema 7:
#include<iostream>
#include<fstream>

using namespace std;

int cifre(int n)
{
int uc=n%10;

while(n>9)
n=n/10;

if(n==uc) return 1;
else return 0;
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,v[30],i,gasit,min,max;
i=1;
while(f>>v[i]) i++;
n=i-1;

gasit=0;
for(i=1;i<=n;i++)
if(v[i]%2==0 && i%2==1)
{

cout<<v[i]<<" ";
gasit=1;
}
if(gasit==0) cout<<"NU EXISTA";

cout<<endl;
gasit=0;
for(i=1;i<=n;i++)
if(cifre(v[i])==1)
{
cout<<v[i]<<" ";
gasit=1;
}
if(gasit==0) cout<<"NU EXISTA"<<endl;

min=v[1];
max=v[1];
for(i=1;i<=n;i++)
{
if(v[i]<min) min=v[i];
if(v[i]>max) max=v[i];
}
g<<(min+max)/2.0;
return 0;
}
Fisier intrare:
7 11 8 16 5 37 21 4714 64 222

Problema 8:
#include<iostream>
#include<fstream>

using namespace std;

int ndiv(int n)
{
int d,k;
k=0;
for(d=2;d<=n/2;d++)
if(n%d==0)
k++;

return k;
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,v[30],frecv[10],i,max,poz,aux,uc;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];

for(i=0;i<=9;i++) frecv[i]=0;

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

{
aux=v[i];
while(aux)
{
uc=aux%10;
frecv[uc]++;
aux=aux/10;
}
}

max=frecv[0];
for(i=1;i<=9;i++)
if(max<frecv[i]) max=frecv[i];

for(i=1;i<=9;i++)
if(max==frecv[i]) cout<<i<<" ";

cout<<endl;

max=ndiv(v[1]);
poz=1;
for(i=2;i<=n;i++)
if(ndiv(v[i])>max)
{
max=ndiv(v[i]);
poz=i;
}
cout<<v[poz]<<endl;

for(i=1;i<=n;i++)
if(ndiv(v[i])==0)
g<<v[i]<<" ";

g.close();
f.close();
return 0;
}
Fisier intrare:
10
13 797 25 303 482 12321 72 46 282 31

Problema 9:
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;

void sortare(int n,float v[30])


{
int i,j;
float aux;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]<v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;

}
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");
int n,i;
float v[30],s;

f>>n;
for(i=1;i<=n;i++)
f>>v[i];

for(i=1;i<=n;i++)
if(v[i]>-10 && v[i]<10)
cout<<v[i]-floor(v[i])<<" ";

cout<<endl;
sortare(n,v);
for(i=1;i<=n;i++)
cout<<v[i]<<" ";

s=0;
for(i=1;i<=n;i++)
s=s+v[i];
g<<s/n;

f.close();

g.close();
return 0;
}
Fisier intrare:
10
12.52 1.76 0.12 4.51 18.1 22.2 6.3 11.1 3.35 33.65

Problema 10:
#include<iostream>
#include<fstream>

using namespace std;

int cifre(int n)
{
int n1=0,n2=0;
while(n>0)
{
if(n%2==0) n1++;
else n2++;
n=n/10;
}
if(n1==n2) return 1;
else return 0;
}

int main()
{
ifstream f("atestat.in");
ofstream g("atestat.out");

int n,v[30],i,min,pozmin;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];

for(i=1;i<=n;i++)
if(v[i]%5==0)
cout<<v[i]<<" ";

cout<<endl;
for(i=1;i<=n;i++)
cout<<cifre(v[i])<<" ";

min=v[1];
pozmin=1;
for(i=1;i<=n;i++)
if(v[i]<min)
{
min=v[i];
pozmin=i;
}

g<<min<<" "<<pozmin;
f.close();
g.close();
return 0;
}

Fisier intrare:
6

1234 45 42 845 2332 101

Potrebbero piacerti anche