Sunteți pe pagina 1din 4

Test:

REZOLVARE:a) Raspunsul este 202888.

b)Numerele sunt 101, 110, 900.


c) #include <iostream>
#include <cmath>
using namespace std;

int main()
{
int x,y,c;
cin>>x>>y;
do {
c = x%10;
x = abs(x/10);
if (c!=0){
if (y%10<c)
y=y*10+c;
else
y=y*10-c;}
}while (x!=0);
cout<<y;
return 0;
}
d)Intreg x,y,c;
citeste x,y;
cat timp (x!=0) executa
c<-x%10;
x<-[x/10];
daca c!=0 executa
daca y%10<c executa
y<-y*10+c;
altfel
y<-y*10-c;
scrie y
2.

Indicați o expresie C/C++ care are valoarea 1 dacă și numai dacă numărul memorat în variabila
întreagă x aparține reuniunii de intervale [-2020,-2019]U[2019,2020].
a. x>=-2020 && x<=-2019 && x>=2019 && x<=2020
b. !(x<-2020 && x>2020 && x>-2019 || x<2019)
c. x>=-2020 || x<=-2019 || x>=2019 || x<=2020
d. !(x<-2020 || x>-2019) || !(x<2019 || x>2020)

REZOLVARE:Raspunsul corect este b).

3.
Variabila x este de tip întreg. Numărul de valori întregi distincte ale luix pentru care expresia
C/C++ alăturată are valoarea 0 este: x/2017
a.2·2017+1 b. 2017 c. 2016 d. 2·2016+1
REZOLVARE:Raspunsul corect este c).

4.
Numim par_secvență într-un șir o succesiune de termeni ai șirului cu proprietatea că sunt numere
pare și că se află pe poziții consecutive în șir; orice secvență are cel puțin doi termeni și este
maximală în raport cu proprietatea precizată (dacă i se adaugă un alt termen, secvența își pierde
această proprietate). Lungimea secvenței este egală cu numărul termenilor săi.
Fişierul bac.txt conţine un şir de cel mult 106 numere naturale din intervalul [0,109].
Numerele din şir sunt separate prin câte un spaţiu.
Se cere să se afişeze pe ecran numărul de par_secvențe de lungime maximă din șir.
Proiectați un algoritm eficient din punctul de vedere al spațiului de memorie utilizat şi al
timpului de executare.
Exemplu: dacă fişierul bac.txt conţine valorile
1 2 3 4 6 10 2 8 5 7 9 4 6 10 121 20 4 11 10 2 5 2 6 8 10 16
se afişează pe ecran numărul 2.
Scrieţi programul C/C++ corespunzător .
REZOLVARE:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("par_secventa.in");
ofstream fout("par_secventa.out");
int x , l , lmax , cnt;
int main()
{
while(fin >> x)
if(x % 2 == 0) l++;
else
{
if(l > lmax) lmax = l , cnt = 1;
else if(l == lmax) cnt++;
l = 0;
}
if(l == lmax) cnt++;
if(l > lmax) fout << 1;
else fout << cnt;
return 0;
}

5. Se citesc de la tastatura două numere naturale n,m cu maxim 9 cifre.


a) Să se determine cifrele distincte comune numerelor n şi m.
b) Să se afişeze numărul cel mai mare format din toate cifrele lui 6
Exemplu : pentru n=2115 m=29025 se va afişa a) 2 5 b) 5211
REZOLVARE:
#include<iostream>
using namespace std;
int main()
{
int a,b,cb,c,maxa=0,ca,nr;
cin>>a;
cin>>b;
c=0;
ca=a;
while(a>0)
{
cb=b;
while(cb>0)
{ if(cb%10==a%10) cout<<a%10<<" ";
cb=cb/10;
}
a=a/10;
}
while (ca!=0)
{
if (ca%10>maxa){
maxa=ca%10;}
nr=nr*10+ca%10;
ca=ca/10;
cout<<nr;
}

return 0;
}

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