Sunteți pe pagina 1din 10

Varianta 001

1. b
2. 12345
3. //varianta 001 sub III pr 3
#include<fstream.h>
void main()
{
fstream f("bac.txt",ios::in);
unsigned int n,ok=0,x;
do
{
cout<<"n= ";cin>>n;
}while(n>999);
while(!f.eof())
{
f>>x;
if(x%n==0)
{
cout<<x<<' ';
ok=1;
}
}
if(!ok)
cout<<"nu exista";
f.close();
}
4. //varianta 001 sub III pr 4
#include<iostream.h>
unsigned sub(int v[100],int n,int a)
{
unsigned nr=0;
for(int j=1;j<=n;j++)
if(v[j]<a)
nr++;
return nr;
}
void main()
{
unsigned n,s=0,i;
int v[100];
cout<<"n= ";
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
for(i=1;i<=n;i++)
s+=sub(v,n,v[i]);
if(s==n*(n-1)/2)
cout<<"DA";
else
cout<<"NU";
}
Varianta 002
1. d
2. 5310135
3. #include<fstream.h>
int a[100],n,i,ok,aux;

fstream f("nr.txt", ios::in);


void main()
{
i=1;
while(f>>n)
if(n>0)
a[i++]=n;
n=i-1;
do
{
ok=1;
for(i=1;i<n;i++)
if(a[i]>a[i+1])
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
ok=0;
}
}while(!ok);
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
f.close();
}
4. //varianta 002 sub III pr 4
#include<iostream.h>
unsigned f(unsigned a)
{
unsigned s=0,d=2;
while(a>1)
{
while(a%d==0)
{
s++;
a/=d;
}
d++;
}
return s;
}
void main()
{
unsigned n,ok=1,n1;
do
{
cout<<"n= ";cin>>n;
}while(n<2 || n>999);
if(n<10 && f(n)!=1)
ok=0;
if(n>=10 && n<100 && f(n)!=1 && f(n%10*10+n/10)!=1)
ok=0;
n1=n/100*100+n%10*10+n%100/10;
for(int i=1;i<=3;i++)
{
if(f(n)!=1 || f(n1!=1))
ok=0;

n=n%10*100+n/10;
n1=n1%10*100+n1/10;
}
if(ok) cout<<"DA";
else
cout<<"NU";
}
Varianta 003
1. a
2. xyyy
3. //Varianta3 probl3
#include<fstream.h>
fstream f("nr.txt",ios::in);
int v[100],aux,ok,n,i=0,a;
void main()
{
while(f>>a)
if(a>=100 && a<=999)
v[++i]=a;
n=i;
if(i==0) cout<<"nu exista";
else
{
do
{
ok=1;
for(i=1;i<n;i++)
if(v[i]>v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=0;
}
}while(!ok);
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
}
f.close();
}
4. //varianta 003 sub III pr 4
#include<iostream.h>
unsigned cif(long int a, int b)
{
int c=0;
while(a>0)
{
if(a%10==b)
c++;
a/=10;
}
return c;
}
void main()
{
long n;

int ok=1,v[10],i,k;
do
{
cout<<"n= ";cin>>n;
}while(n<10000000 || n>99999999);
for(i=0;i<=9;i++)
v[i]=cif(n,i);
for(i=0;i<=9;i++)
if(v[i]%2!=0)
ok=0;
n=0;
if(ok)
{
for(i=9;i>=0;i--)
if(v[i]!=0)
for(k=1;k<=v[i]/2;k++)
n=n*10+i;
for(i=0;i<=9;i++)
if(v[i]!=0)
for(k=1;k<=v[i]/2;k++)
n=n*10+i;
}
cout<<n;
}
Varianta 004
1. c
2. 01111
3. //varianta 4 pr3
#include<fstream.h>
int v[100],i,a,ok=1;
fstream f("nr.txt",ios::in);
void main()
{
while(f>>a)
if(a<100)
v[a]=1;
for(i=99;i>=0;i--)
if(v[i]==1)
{
cout<<i<<" ";
ok=0;
}
if(ok) cout<<"nu exista";
f.close();
}
4. //varianta 004 sub III pr 4
#include<iostream.h>
unsigned cif(long int a, int b)
{
int c=0;
while(a>0)
{
if(a%10==b)
c++;
a/=10;
}

return c;
}
void main()
{
long n;
int ok=1,v[10],i,k;
do
{
cout<<"n= ";cin>>n;
}while(n<10000000 || n>99999999);
for(i=0;i<=9;i++)
v[i]=cif(n,i);
for(i=0;i<=9;i++)
if(v[i]%2!=0)
ok=0;
n=0;
if(ok)
{
for(i=0;i<=9;i++)
if(v[i]!=0)
for(k=1;k<=v[i]/2;k++)
n=n*10+i;
for(i=9;i>=0;i--)
if(v[i]!=0)
for(k=1;k<=v[i]/2;k++)
n=n*10+i;
}
cout<<n;
}
Varianta 005
1. d
2. 7*****
3. //varianta 005 sub III pr 4
#include<fstream.h>
void main()
{
fstream f("nr.txt",ios::out);
long n;
do
{
cout<<"n= ";cin>>n;
}while(n<10);
while(n>0)
{
f<<n<<" ";
n/=10;
}
f.close();
}
4. //varianta5 problema 4
#include<iostream.h>
long f(long a)
{
int d=2;
while(a%d!=0)

d++;
return d;
}
int n,a,v[100],k,ok,i,aux;
void main()
{
cout<<"n= ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<"a= ";cin>>a;
if(f(a)==a)
v[++k]=a;
}
if(k==0) cout<<"Nu exista";
else
{
do
{
ok=1;
for(i=1;i<k;i++)
if(v[i]>v[i+1])
{
aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=0;
}
}while(!ok);
for(i=1;i<=k;i++)
cout<<v[i]<<" ";
}
}
Varianta 006
1. a
2. 7
3. //varianta 6 problema 3
#include<iostream.h>
unsigned i,n,v[100],s;
void main()
{
do
{
cout<<"n= ";cin>>n;
}while(n>100);
for(i=1;i<=n;i++)
{
cout<<"v["<<i<<"]= ";cin>>v[i];
s+=v[i];
}
for(i=1;i<=n;i++)
{
cout<<s<<endl;
s=s-v[n-i+1];
}
}
4. //varianta 6 problema 4

#include<fstream.h>
fstream f("bac.txt",ios::in);
long x,y,l;
void main()
{
f>>x;
l=1;
while(f>>y)
{
if(x==y)
l++;
else
{
cout<<x<<" "<<l<<endl;
x=y;l=1;
}
}
cout<<x<<' '<<l;
}
Se citete primul numr din fiier n variabila x i se iniializeaz lungimea l cu 1.
Ct timp poate fi citit un numr din fiier se verific dac numrul noucitit este egal cu
precedentul; dac da se incrementeaz lungimea irului cu 1; altfel se afieaz
numrul i lungimea, apoi se reiniializeaz variabila l cu 1 i lui x i atribuim valoarea
lui x.
Metoda este eficient pentru c vom parcurge o singur dat fiierul, iar n memorie
vom pstra doar cte 2 numere din fiier i lungimea irului.
Varianta 007
1. c
2. C 95
3. //varianta 7 problema 3
#include<fstream.h>
int n,v[300],i,k,j,aux;
fstream f("bac.txt",ios::out);
void main()
{
cout<<"n= ";cin>>n;
for(i=1;i<=3*n;i++)
{
cout<<"v["<<i<<"]= ";
cin>>v[i];
if(v[i]%2==0 && k==0 && i<=n)
k=i;
if(v[i]%2==1 &&i>=2*n+1)
j=i;
}
if(k!=0 && j!=0)
{
aux=v[k];
v[k]=v[j];
v[j]=aux;
}
for(i=1;i<=3*n;i++)
f<<v[i]<<" ";
}
4. //varianta 007 sub III pr 4
#include<iostream.h>

long s;
long sub(long n)
{
long f1=0,f=0;
int i=1;
while(f<=n)
{
f1=f;
if(i<=5)
f=i;
else
f=2*f1;
i++;
}
return f1;
}
void main()
{
cout<<"s= ";
cin>>s;
while(s>0)
{
cout<<sub(s)<<' ';
s-=sub(s);
}
}
Varianta 008
1. c
2. 2
123
3. int sub(int n)
{
int s=0;
for(int i=1;i<=n;i++)
{
cin>>v[i];
if(sqrt(v[i])==floor(sqrt(v[i])))
s+=v[i];
}
return s;
}
4. //varianta 008 sub III pr 4
#include<fstream.h>
fstream f("bac.txt",ios::out);
int a[20],b[20],c[40],n,m,i,j,k;
void main()
{
cout<<"n= ";
cin>>n;
for (i=1;i<=n;i++)
cin>>a[i];
cout<<"m= ";
cin>>m;
for(j=1;j<=m;j++)
cin>>b[j];
i=j=k=1;

while(i<=n && j<=m)


{
if(a[i]<b[j])
c[k++]=a[i++];
else
c[k++]=b[j++];
}
if (i<=n)
c[k++]=a[i++];
if (j<=m)
c[k++]=b[j++];
f<<c[1]<<' ';
for(i=2;i<=n+m;i++)
if (c[i-1]%2!=c[i]%2)
f<<c[i]<<' ';
}
Varianta 009
1. b
2. 1
3. void sub(int n, int k)
{
cout<<endl;
for(int i=n*k;i>=k;i=i-k)
cout<<i<<' ';
}
4. //varianta 009 sub III pr 4
#include<fstream.h>
fstream f("bac.txt", ios::in);
long int n;
int v[900],nr=0,i;
void main()
{
while(f>>n)
if (n>=100 && n<=999)
v[n-100]=1;
for(i=899;i>=0 && nr<2;i--)
if (v[i]==0)
{
cout<<i+100<<" ";
nr++;
}
if(nr!=0 && i==-1)
cout<<0;
}
Considerm vectorul v. Parcurgem o singur dat fiierul. Dac am citit din fiier un
numr de 3 cifre, atunci vom marca elemental v[n-100] cu 1. Vom parcurge vectorul v
i acolo unde vom gsi valoarea 1 vom afia poziia+100.
Varianta 010
1. a
2. C 54 =5
3. void sub(unsigned n, unsigned &a, unsigned &b)
{
int i=5,ok;
a=3;b=2;

while(i<=n)
{
ok=1;
for(int k=2;k<=sqrt(i)&&ok;k++)
if(i%k==0)
ok=0;
if(ok)
{
b=a;
a=i;
}
i+=2;
}
}
4. //varianta 010 sub III pr 4
#include<fstream.h>
fstream f("produse.txt", ios::in);
int v[9999],i,c,s;
void main()
{
while(f>>i>>c>>s)
v[i]+=c*s;
for(i=1;i<=9999;i++)
if(v[i])
cout<<i<<" "<<v[i]<<endl;
}
n vectorul v pstrm suma total pentru fiecare tip de produs. Iniializm elementele
vectorului cu 0. Pentru fiecare triplet (I, c, s) citit din fiier vom crete elemental v[i]
cu c*s. nu mai este necesar sortarea vectorului. Vom face n adunri i n nmuliri.

S-ar putea să vă placă și