Subiectul I
1. b
2.
a. 23949
b. 1009, 1008
c.
citeste n
nr<- 0
p <- 1
repeta
c<- n%10
daca c>0 si c<9 atunci
c<-c+1
nr<-nr+c*p
p<-p*10
n<- [n/10]
pana cand n=0
scrie nrd.
cin>>n;
nr=0;
p=1;
while( n )
{
c = n%10;
if( c>0 && c<9)
c++;
nr += c*p;
p*= 10;
n /= 10;
}
cout<<nr;
Subiectul II
1. b
2. c
3.
Rezolvarea completa:
int cmmdc(int a, int b)
{
int r;
r = a % b;
while( r )
{
a = b;
b = r;
r = a % b;
}
return b;
}
int cmmc(int a, int b)
{
return (a*b/cmmdc(a, b));
}
int main(void)
{
int CMMC, a, b;
CMMC = cmmc(f1.y, f2.y);
a = CMMC / f1.y ;
b = CMMC / f2.u ;
f.x = f1.x*a + f2.x*b ;
f.y = CMMC ;
return 0 ;
}
Era insa suficient si urmatorul cod:
f.x = f1.x*f2.y + f2.x*f1.y;
f.y = f1.y * f2.y;
4. "elene"
5.
#include <iostream>
using namespace std;
unsigned int n;
unsigned int A[25][25];
int main(void)
{
cin>>n;
unsigned int i, j, k;
for(i=1; i<=n; i++)
{
k = n;
for(j=1; j<=n; j++)
{
A[i][j] = k;
k--;
}
}
for(i=1; i<=n; i++)
A[i][i] = 0;
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
cout<<A[i][j]<<' ';
cout<<'\n';
}
return 0;
}
Subiectul III
1. a
2. "ABA"
3.
#include <iostream>
using namespace std;
int k, i;
int nz(int n)
{
int factorial = 1, i, contor = 0;
for(i=1; i<= n; i++)
factorial *= i;
while( factorial%10 == 0)
{
contor++;
factorial /= 10;
}
return contor;
}
int main(void)
{
cin>>k;
for(i=1; nz( i ) != k; i++);
cout<<i<<'\n';
return 0;
}
4.
#include <fstream>
#include <iostream>
using namespace std;
int p[32000];
int sol[10000];
int n, a,b, k=1;
void gasire_puteri()
{
int i = 1;
while( i<=32000)
{
i *= 2;
p[i] = 1;
}
//si 2^0 este o putere a lui 2; adica 1, unde 0 este numar natural
p[1] = 1;
}
void rezolvare()
{
ifstream fin("BAC.TXT");
int i, j, gasit;
fin>>n;
for(i=1; i<=n; i++)
{
fin>>a>>b;
gasit = 0;
for(j=b; j>=a; j--)
if( p[j] )
{
gasit = 1;
sol[k] = j;
k++;
break;
}
if( !gasit )
{
sol[k] = 0;
k++;
}
}
}
void afisare()
{
int i;
for(i=1; i<k; i++)
cout<<sol[i]<<' ';
}
int main(void)
{
gasire_puteri();
rezolvare();
afisare();
return 0;
}