Sunteți pe pagina 1din 12

1.

Fiind dat un numr natural n, scrieti un program pentru calculul


expresiei:
E =1*2+2*3+3*4+...+n*(n+1).
#include <iostream>
using namespace std;
int main()
{int n,i,E=0;
cin>>n;
for(i=1;i<=n;i++)
E=E+i*(i+1);
cout<<"Rezultatul este: "<<E;
return 0;
}
2. Se citesc de la tastatur dou numere naturale n i p,
(1<n<1000,1<p<10). S se afieze pe ecran, cu spatiu ntre
ele, acele numere naturale mai mici sau egale cu n, care au
toate cifrele mai mici sau egale cu p.
Exemplu: pentru n=15 i p=2, se vor afia numerele
0,1,2,10,11,12.
#include <iostream>
using namespace std;
int main()
{int n,p,i,OK=1,aux;
cin>>n>>p;
for(i=1;i<=n;i++)
{

OK=1;
aux=i;
while(aux!=0)
{
if(aux%10>=p)
OK=0;
aux=aux/10;
}
if(OK==1)
cout<<i<<' ';
}
return 0;
}
3. Realizati un algoritm care afieaz "cifra de control" a unui
numr natural, determinat astfel: se calculeaz suma cifrelor
numrului, apoi suma cifrelor sumei obtinute, .a.m.d., pn
cnd rezultatul este o singur cifr.
#include <iostream>
using namespace std;
int main()
{int n,s=0;
cout<<"Se citeste numarul: "; cin>>n;
while(n>9)
{
while(n!=0)
{

s=s+n%10;
n=n/10;
}
n=s;
s=0;
}
cout<<"Cifra de control a numarului este:"<<n;
return 0;
}
4. Se citesc de la tastatur dou numere naturale x i y, cu
maxim patru cifre fiecare. Scrieti un algoritm care tiprete pe
ecran suma numerelor pare cuprinse ntre x i y inclusiv.
Exemplu: pentru x=12 i y=23, se va afia valoarea 102.
#include <iostream>
using namespace std;
int main()
{int x,y,nr,s=0;
cin>>x>>y;
for (nr=x;nr<=y;nr++)
{
if (nr%2==0)
s=s+nr;
}
cout<<s;
return 0;

}
5. Scrieti un algoritm care elimin prima i ultima cifr dintr-un
numr natural n citit de la tastatur. Numrul dat poate avea
minim 3 i maxim nou cifre.
#include <iostream>
using namespace std;
int main()
{int n,nr=0,p=1;
cin>>n;
n=n/10;
while (n>9)
{ nr=nr+(n%10)*p;
p=p*10;
n=n/10;}
cout<<nr;
return 0;
}

#include <iostream>
using namespace std;
int main()
{int n,p,c;
cout<<"Se da un numar n = "; cin>>n;
n=n/10;
p=1;

c=n;
while(c>9)
{
c=c/10;
p=p*10;
}
n=n%p;
cout<<endl<<"Dupa eliminarea primei si ultimei cifre n="<<n;
return 0;
}
6. Se citesc de la tastatur valorile a trei variabile n, c1 i c2,
unde n este un numr natural format din cel mult nou cifre, iar
c1 i c2 memoreaz cte o cifr.
Realizati un algoritm care nlocuiete cu cifra c2 fiecare
aparitie a cifrei c1 n cadrul numrului n, i afieaz pe ecran
valoarea astfel obtinut. n cazul n care cifra c1 nu se
regsete n numrul n, valoarea lui n va rmne
nemodificat.
Exemplu: pentru n=149448, c1=4 i c2=2 algoritmul va
afia valoarea 129228.
#include <iostream>
using namespace std;
int main()
{int n,cif1,cif2,c,s=0,k=0;
cout<<"Se da un numar n: "; cin>>n;
cout<<endl<<"Se alege o cifra Cif1: "; cin>>cif1;
cout<<endl<<"Cifra cif1 se va inlocui cu cifra Cif2: "; cin>>cif2;

while(n!=0)
{
c=n%10;
if (c==cif1)
c=cif2;
s=s*10+c;
n=n/10;
}
while(s!=0)
{c=s%10;
k=k*10+c;
s=s/10;}
cout<<"Nr. obtinut este: "<<k;
return 0;
}
7. Se citesc de la tastatur dou numere naturale a i b unde a
contine cel mult nou cifre, iar b este strict mai mic dect
numrul de cifre a lui a. Scrieti un algoritm care nlocuiete cu
0 ultimele b cifre ale numrului a i afieaz pe ecran valoarea
astfel obtinut.
Exemplu: pentru a=1844657 i b=3, numrul tiprit este
1844000.
#include <iostream>
using namespace std;
int main()
{int a,b,p=1;

cout<<"a= ";
cin>>a;
cout<<"Sa se inlocuiasca cu 0 ultimele "; cin>>b; cout<<"cifre
ale lui a.";
while(b!=0)
{
a=a/10;
p=p*10;
b--;
}
a=a*p;
cout<<endl<<a;
return 0;
}
8. Un numr natural se numete perfect dac este egal cu suma
divizorilor si.
Exemplu: 6=1+2+3. S se verifice dac un numr natural
dat este perfect, afindu-se un mesaj corespunztor.
#include<iostream>
using namespace std;
int main()
{int i,sn,n;
cout<<"Se da numarul n= "; cin>>n;
sn=0;
for(i=1;i<=n/2;i++)
if(n%i==0)

sn+=i;
if(sn==n)
cout<<"Numarul "<<n<<" este perfect !";
else
cout<<"Numarul "<<n<<" NU este perfect !";
return 0;
}
9. Se citete de la tastatur un numr natural x cu maxim nou
cifre. S se afieze toate numerele care se obtin prin eliminarea
pe rnd a cte unei singure cifre din x, precum i cel mai mare
dintre aceste numere.
Exemplu: pentru x=425978 rezult numerele: 42597, 42598,
42578, 45978, 25978, iar cea mai mare dintre acestea este
45978.
#include <iostream>
using namespace std;
int main()
{long a,a1,x=0,nrca=0,z=0,c,i,p,maxim=0;
cin>>a;
a1=a;
while(a!=0)
{a=a/10;
nrca++;}
a=a1;
for(i=1;i<=nrca;i++)
{

a1=a;
p=1;
z=0;
x=0;
while(a1!=0)
{
c=a1%10;
x++;
if (x!=nrca+1-i)
{
z=z+p*c;
p=p*10;
}
a1=a1/10;
}
cout<<endl<<z<<" ";
if (z>maxim)
maxim = z;
}
cout<<endl<<"maxim = "<<maxim;
return 0;
}
10. Realizati un algoritm care afieaz pe ecran toate numerele
pare alctuite din exact dou cifre. Respectivele valori vor fi

scrise pe mai multe linii de ecran, cte cinci pe fiecare linie,


separate prin cte un spatiu.
#include <iostream>
using namespace std;
int main()
{int i,k=1;
for(i=10;i<100;i+=2)
{cout<<i<<' ';
k++;
if((k-1)%5==0)
cout<<'\n';
}
return 0;
}

11. Realizati un algoritm care afieaz pe ecran toate numerele


impare alctuite din exact dou cifre. Respectivele valori vor fi
scrise pe mai multe linii de ecran, cte trei pe fiecare linie,
separate prin cte un spatiu.
#include <iostream>
using namespace std;
int main()
{int i,k=1;
for(i=11;i<100;i+=2)

{cout<<i<<' ';
k++;
if((k-1)%3==0)
cout<<'\n';
}
return 0;
}
12. Se citete de la tastatur un numr natural n alctuit din cel
mult opt cifre.
Scrieti un algoritm care afieaz mesajul DA dac numrul dat
are toate cifrele identice, respectiv NU n caz contrar. Exemplu:
pentru n=77777, se va afia mesajul DA.
#include <iostream>
using namespace std;
int main()
{int n,c,OK=0;
cin>>n;
c=n%10;
while(n)
{
if(n%10==c)
OK=1;
else
{

OK=0;
break;
}
n=n/10;
}
if(OK==1)
cout<<"Numarul are toate cifrele egale.";
else
cout<<"Numarul NU are toate cifrele egale.";
return 0;
}