Sunteți pe pagina 1din 5

Probleme

I. Probleme rezolvate
1. Scrieti un program C++ care calculeaza valoarea expresiei: S=1+1/2+1/3+..+1/n, nN.
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{int n,i;
float S=0;
cin>>n;
for(i=1;i<=n;i++)
S=S+(float)1/i;
cout<<S;
return 0;
}
2. Se citeste n nr natural. Si apoi se citesc n nr cu cel putin 9 cifre fiecare. Scrieti un program
C++ care afiseaza nr care are cea mai mare suma a cifrelor.
#include <iostream>
using namespace std;
int main()
{int n,i,S,max=0;
long x;
cin>>n;
for(i=1;i<n;i++)
{
cin>>x;
aux=x;
S=0;
while(x!=0)
{
S=S+x%10;
x=x/10;
}
if(S>max)
{
m=aux;

max=S;
}
}
cout<<n;
return 0;
}
3. Se citeste n nr natural. Si apoi se citesc n nr intregi. Scrieti un program care afiseaza nr
cifrelor egale cu 1 care apar in scrierea fiecarui nr in baza 2.
#include <iostream>
using namespace std;
int main()
{int n,x,nr,i;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
nr=0;
while(x!=0)
{
if(x%2==1)
nr++;
x=x/2;
}
cout<<nr<<" ";
}
return 0;
}
4. Se considera un numar n citit de la tastatura. Sa se realizeze un program care afiseaza pe
ecran cifrele pare ale acestuia in ordinea inversa aparitiei, separate prin cate o virgula.
#include <iostream>
using namespace std;
int main()
{long n;
int x=0;
cin>>n;
while(n)
{

x=n%10;
if(x%2==0)
cout<<x<<", ";
n=n/10;
}
return 0;
}
5. Se considera un nr natural n. Sa se formeze doua noi numere, unul format din cifrele pare
ale lui n, celalalt format din cifrele impare.
#include <iostream>
using namespace std;
int main()
{long n,a,b;
int x; cin>>n;
a=0;
b=0;
while(n)
{
x=n%10;
if(x%2==0)
a=a*10+x;
else
b=b*10+x;
n=n/10;
}
cout<<a<<" "<<b;
return 0;
}
6. Se citesc nr intregi pana la intalnirea valorii 0. Scrieti un program care afiseaza nr de valori
prime citite.
#include <cmath>
#include <iostream>
using namespace std;
int main()
{int x,i,p,nr=0;
cin>>x;
while(x!=0)

{
p=1;
for(i=2;i<=sqrtf(x);i++)
if(x%i==0)
p=0;
if(p!=0)
nr++;
cin>>x;
}
cout<<nr;
return 0;
}
7. Se citeste n nr natural, si apoi se citesc n numere cu cel putin 9 cifre fiecare. Scrieti un
program care pentru fiecare cele n nr citite determina cea mai mare cifra care apare in
scrierea nr.
#include <iostream>
using namespace std;
int main()
{int n,i,max;
long x;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
max=0;
while(x!=0)
{
if(x%10>max)
max=x%10;
x=x/10;
}
cout<<max;
}
return 0;
}
II. Probleme propuse
1. Se considera un numar natural n (n>1000). Sa se afiseze cele doua numere formate prin

"injumatatirea" scrierii zecimale a lui n.


Exemplu: Pentru 12345 se va afisa 12 si 345. Pentru n=182345 se va afisa 182 si 345.
2. Se considera un nr natural n (n>100). Sa se afiseze cifrele situate pe pozitii impare
incepand cu cifra unitatilor.
Exemplu: Pentru n=12345 se va afisa 52
3. Se considera un nr natural n (n>100). Sa se afiseze suma primelor doua cifre ale lui n.
Exemplu: Pentru n=1235 se va afisa 3
4. Se considera un nr natural n. Sa se afiseze cel mai mic multiplu par al numarului format
din prima si ultima cifra a acestuia.
Exemplu: Pentru n=1235 se va afisa 30
5. Se considera un nr natural n (n>1000). Sa se afiseze numarul format din cifrele pare ale lui
n situate pe pozitii impare incepand cu prima cifra a sa.
Exemplu: Pentru n=724582 se va afisa 48
6. Se considera un numar natural n (n>1000). Sa se afiseze numarul de aparitii a cifrei
unitatilor in scrierea lui n.
Exemplu: Pentru n=15535 se va afisa 3 (5 apare de 3 ori)
7. Se considera un numar natural n (n>1000). Sa se afiseze cea mai mare cifra care apare in
scrierea lui n si numarul de aparitii al ei.
Exemplu: Pentru n=19539 se va afisa "9 apare de 2 ori"

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