Documente Academic
Documente Profesional
Documente Cultură
1. d
2. 681012108
3. //varianta 031 sub III pr 3
#include<iostream.h>
int i,j,n,m;
float v[100];
float suma(float x[100], int n, int m)
{
float s=0, aux;
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(x[i]>x[j])
{
aux=x[i];
x[i]=x[j];
x[j]=aux;
}
for(i=1;i<=m;i++)
s+=x[i];
return s;
}
void main()
{
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
cout<<suma(v,n,3);
}
Varianta 033
1. b
2. re(1)=10; re(14)=3;
3. //var 033 sub III pr 3
#include<fstream.h>
#include<math.h>
fstream f("numere.txt",ios::in);
int v[100],n,i,k,max1,max,j;
int max_cif(int x[100],int n)
{
int max=-1000;
for(i=1;i<=n;i++)
if(abs(x[i])>=100 && abs(x[i])<=999 && max<x[i])
max=x[i];
if(max!=-1000)
return max;
else
return 0;
}
void main()
{
f>>n;
for(k=1;k<=n;k++)
{
for(j=1;j<=n;j++)
f>>v[j];
max1=max_cif(v,n);
if(max1>max)
max=max1;
}
if(max!=-1000)
cout<<max;
else
cout<<0;
}
Neclaritate în enunţ! Se cere metodă eficientă din punct de vedere al utilizării
memoriei, dar funcţia presupune utilizarea vectorului!
Varianta 034
1. a
2. (1,2) (3,4) 95,6) (7,8) (9,10), (11,12)
3. //varianta 034 sub III pr 3
#include<fstream.h>
fstream f("numere.txt",ios::in);
int n,i,j,v[100],max1,m=-9999,d;
int max(int x[],int n)
{
if(x[2]-x[1]<0)
return x[1];
else
return x[n];
}
void main()
{
f>>n;
for(j=1;j<=n;j++)
{
for(i=1;i<=n;i++)
f>>v[i];
d=v[2]-v[1];i=3;
while(v[i+1]-v[i]==d)
i++;
if(i==n+1)
max1=max(v,n);
if(max1>m)
m=max1;
}
if(m!=-9999)
cout<<m;
else
cout<<0;
}
Vom citi pe rand elementele unei linii în vectorul v. Verificam daca elementele sunt în
progresie aritmetică, în caz afirmativ afişăm elementele.
Varianta 035
1. c
2. -2-442
3. //varianta 035 sub III pr 3
#include<fstream.h>
fstream f("numere.in",ios::in);
int n,x,i,aux;
void main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
aux=x;
while(aux>=10)
aux=aux/10;
if(x%10==aux)
cout<<x<<' ';
}
}
4. //varianta 035 sub III pr 4
#include<iostream.h>
int n,v[100],i,j,aux,x,d;
int sum(int x,int d)
{
if(d==x/2+1)
return 0;
else
if(x%d==0)
return d+sum(x,d+1);
else
return sum(x,d+1);
}
void main()
{
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
d=2;
v[i]=sum(x,d);
}
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;
}
for(i=1;i<=n;i++)
cout<<v[i]<<' ';
}
Varianta 036
1. b
2. 2+3+7
2+4+6
2+10
3. //varianta 036 sub III pr 3
#include<fstream.h>
fstream f("bac.in",ios::in);
int n,x,c[8],i,j,k,nr,aux;
int cifra(int x)
{
if(x==0)
return 0;
while(x)
{
if(x%2==0)
return x%10;
else
x/=10;
}
return -1;
}
void main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
if(cifra(x)!=-1)
c[++j]=cifra(x);
}
for(i=1;i<j;i++)
for(k=i+1;k<=j;k++)
if(c[i]<c[k])
{
aux=c[i];
c[i]=c[k];
c[k]=aux;
}
for(i=1;i<=j;i++)
nr=nr*10+c[i];
cout<<nr;
}
Varianta 037
1. c
2. f(11,7)=-11
3. //varianta 037 sub III pr 3
#include<iostream.h>
int n,k,v[100],i,j,aux;
void main()
{
cout<<"n= ";cin>>n;
cout<<"k= ";cin>>k;
for(i=1;i<=n;i++)
cin>>v[i];
for(j=1;j<=k;j++)
{
aux=v[1];
for(i=1;i<=n;i++)
v[i]=v[i+1];
v[n]=aux;
}
for(i=1;i<=n;i++)
cout<<v[i]<<' ';
}
4. //varianta 037 sub III pr 4
#include<fstream.h>
fstream f("bac.in",ios::in);
int n,i,n1=-1,n2,x;
int nrdiv(int x)
{
int nr=0,d=2;
while(x>1)
{
if(x%d==0)
{
nr++;
while(x%d==0)
x/=d;
}
d++;
}
return nr;
}
void main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
if(nrdiv(x)%2==0)
if(n1==-1)
n1=x;
else n2=x;
}
cout<<n1<<' '<<n2;
f.close();
}
Varianta 038
1. d
2. sc(901324)=19
3. //varianta 038 sub III pr3
#include<iostream.h>
long x;
void del(long &x, int y)
{
long nr=0,p=1;
while(x>0)
{
if(x%10<=y)
nr=nr*10+x%10;
x=x/10;
}
if(nr!=0)
while(nr)
{
x=x*10+nr%10;
nr/=10;
}
else
x=-1;
}
void main()
{
x=336;
del(x,2);
cout<<x;
}
4. //varianta 038 sub III pr 4
#include<fstream.h>
fstream f("bac.in",ios::in);
int i,j,v[100],n;
void inter(int &x,int &y)
{
int aux;
aux=x;x=y;y=aux;
}
void main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(v[i]>v[j])
inter(v[i],v[j]);
for(i=1;i<=n;i++)
cout<<v[i]<<' ';
f.close();
}
Varianta 039
1. b
2. f(8)=9
3. //varianta 039 sub III pr 3
#include<fstream.h>
int prec,n,x,i,ok;
void main()
{
fstream f("bac.in",ios::in);
f>>n;
ok=1;
for(i=1;i<=n;i++)
{
f>>x;
if(x%2==0)
if(x<prec)
ok=0;
else
prec=x;
}
if(ok)
cout<<"DA";
else
cout<<"NU";
f.close();
}
4. //varianta 039 sub III pr 4
#include<iostream.h>
#include<math.h>
long n;
int pr(long a)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(a%i==0)
return 0;
return 1;
}
void main()
{
cout<<"n= ";cin>>n;
while(n>9)
{
if(pr(n))
cout<<n<<' ';
n=n/10;
}
}
Varianta 040
1. c
2. f(23461)=12
3. //varianta 040 sub III pr 3
#include<fstream.h>
int prec1,prec2=10000,n,x,i,ok;
void main()
{
fstream f("bac.in",ios::in);
f>>n;
ok=1;
for(i=1;i<=n;i++)
{
f>>x;
if(x%2==0)
if(x<prec1)
ok=0;
else
prec1=x;
else
if(x>prec2)
ok=0;
else
prec2=x;
}
if(ok)
cout<<"DA";
else
cout<<"NU";
f.close();
}
4. //varianta 040 sub III pr 4
#include<iostream.h>
#include<math.h>
int n,k;
int pr(int a)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(a%i==0)
return 0;
return 1;
}
int sdiv(int y)
{
int s=1+y,j;
for(j=2;j<=y/2;j++)
if(y%j==0)
s+=j;
return s;
}
void main()
{
cout<<"n= ";cin>>n;
for(k=1;k<n;k++)
if(pr(sdiv(k)))
cout<<k<<' ';
}
Varianta 041
1. a
2. f(7,2)=7; f(35,2)=5;
3. //varianta 041 sub III pr 3
#include<iostream.h>
#include<math.h>
int a[100],n,i;
int dist(int a[100],int n)
{
for(i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
if(a[i]==a[j])
return 0;
for(i=1;i<n;i++)
if(abs(a[i]-a[i+1])!=1)
return 0;
return 1;
}
void main()
{
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
cout<<dist(a,n);
}
4. //varianta 041 sub III pr 4
#include<fstream.h>
fstream f("numere.txt",ios::in);
long n;
int v[10],i,j,max;
void main()
{
int i;
f>>n;
for(j=1;j<=n;j++)
{
f>>i;
v[i]++;
}
max=v[0];
for(i=1;i<=9;i++)
if(max<=v[i])
{
max=v[i];
j=i;
}
cout<<j<<' '<<max;
f.close();
}
Considerăm vectorul v ale cărui elemente le iniţializăm cu 0. Citim din fişier numărul de
cifre, apoi cele n cifre. Pentru fiecare cifră I pe care o citim vom incrementa elementul
v[i]. După parcurgerea fişierului vom determina maximul din vectorul v şi vom afişa
poziţia pe care apare valoarea maximă şi valoarea maximă.
Varianta 042
1. a
2. f(7)=6; f(100)=96
3. //varianta 042 sub III pr 3
#include<iostream.h>
#include<math.h>
int a[100],n,i,k;
long p(int a[100],int n, int k)
{
long s=0;
int aux;
for(i=1;i<n;i++)
for(int j=i+1;j<=n;j++)
if(a[i]<a[j])
{
aux=a[i];a[i]=a[j];a[j]=aux;
}
for(i=1;i<=k;i++)
s+=a[i];
return s;
}
void main()
{
cout<<"n= ";cin>>n;
cout<<"k= ";cin>>k;
for(i=1;i<=n;i++)
cin>>a[i];
cout<<p(a,n,k);
}
4. //varianta 042 sub III pr 4
#include<fstream.h>
fstream f("numere.txt",ios::in);
long n;
long v[100],i,x;
void main()
{
int i;
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
v[x]++;
}
for(i=0;i<=99;i++)
if(v[i]==1)
cout<<i<<' ';
f.close();
}
Considerăm vectorul v ale cărui elemente le iniţializăm cu 0. Citim din fişier numărul de
numere, apoi cele n numere de maxim 2 cifre. Pentru fiecare număr x citit din fişier îl
incrementăm pe v[x]. Parcurgem fişierul şi vom afişa poziţia I a elementelor pt care
v[i]=1.
Varianta 043
1. a
2. f(3)=6;f(10)=20;
3. long p(int a[100], int n)
{
long s=0;
int i;
for(i=1;i<=n;i++)
if(a[i]%2==1)
s+=a[i];
return s;
}
4. //var 043 sub III pr 4
#include<fstream.h>
fstream f("numere.txt",ios::in);
long n,i;
int v[10],x;
void main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
v[x]++;
}
for(i=9;i>=0;i--)
{
while(v[i])
{
cout<<i;
v[i]--;
}
}
}
Considerăm vectorul v ale cărui elemente le iniţializăm cu 0. Vectorul v va contoriza
apariţia fiecărei cifre în fişier. Citim din fişier numărul de cifre, apoi cele n cifre. Pentru
fiecare cifră x pe care o citim vom incrementa elementul v[x]. După parcurgerea fişierului
vom afişa cifrele numărului de la 9 la 0, ţinând cont de numărul de apariţii al fiecărei
cifre.
Varianta 044
1. a
2. f(5,10)=7
3. //varianta 044 sub III pr 3
#include<iostream.h>
#include<math.h>
int n,x,nr,i;
void main()
{
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
if(sqrt(x)*sqrt(x)==x)
nr++;
}
cout<<nr;
}
4. //varianta 044 sub III pr 4
#include<fstream.h>
fstream f("numere.txt",ios::in);
long n,i;
int v[10],x;
void main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
while(x>0)
{
v[x%10]=1;
x/=10;
}
}
for(i=0;i<=9;i++)
if(v[i]==1)
cout<<i<<' ';
}
Considerăm vectorul v ale cărui elemente le iniţializăm cu 0. În vectorul v vom marca
apariţia fiecărei cifre în fişier. Citim din fişier numărul de numere, apoi cele n numere.
Pentru fiecare număr x pe care îl citim vom extrage cifrele şi vom marca în v apariţia
cifrelor. După parcurgerea fişierului vom afişa indicii elementelor pentru care v[i]=1.
Varianta 045
1. a
2. f(4)=3; f(11)=5
3. //varianta 045 sub III pr 3
#include<iostream.h>
int i,j,ok,n;
float x[100];
void main()
{
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
for(i=1;i<=n;i++)
{
ok=1;
for(j=1;j<=n;j++)
if(i!=j)
if(x[i]==x[j])
ok=0;
if(ok)
cout<<x[i]<<' ';
}
}
4. //varianta 045 sub III pr 4
#include<fstream.h>
fstream f("numere.txt",ios::in);
long n,i,x;
int v[100];
void main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
v[x]++;
}
for(i=0;i<=99;i++)
while(v[i]!=0)
{
cout<<i<<' ';
v[i]--;
}
}
Numerele formate din cel mult 2 cifre sunt 0 …99, deci este suficient un vector v cu 100
elemente. Fiecare element v[i] memoreaza valoarea 1 dacă I apare în fişier. In final sunt
afişate în ordine crescătoare numerele de la 0 la 99.
Varianta 046
1. c
2. f(100)=10100
3. //varianta 046 sub III pr 3
#include<fstream.h>
fstream f("bac.txt",ios::in);
int n,x,k,j;
int nr_div(int x)
{
int nr=2;
for(int i=2;i<=x/2;i++)
if(x%i==0)
nr++;
return nr;
}
void main()
{
f>>n;
cout<<"k= ";cin>>k;
for(j=1;j<=n;j++)
{
f>>x;
if(nr_div(x)>=k)
cout<<x<<' ';
}
}
4. //varianta 046 sub III pr 4
#include<iostream.h>
int n,i,sc,nc;
void cifre(long nr, int &nc, int&sc)
{
nc=0;sc=0;
while(nr)
{
nc++;
sc+=nr%10;
nr/=10;
}
}
int sub(long x)
{
long aux=x;
float ma;
cifre(x,nc,sc);
for(i=1;i<=nc;i++)
{
ma=(float)(sc-aux%10)/(nc-1);
if(aux%10==ma)
return 1;
aux/=10;
}
return 0;
}
void main()
{
cout<<"n= ";cin>>n;
cout<<sub(n);
}
Varianta 047
1. d
2. C 3 * C8 21 * 8 168
2 5