Sunteți pe pagina 1din 8

Algoritmi fundamentali

1. Se dau două numere întregi. Să se citească de la tastatură în C++, apoi să se afișeze numerele.
#include <iostream>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
cout << “Primul nr. este: ” << n << endl;
cout << “Al doilea nr. este: ” << m;
return 0;
}

2. Se dă un număr. Să se verifice dacă nr. este par și mai mare decât 1000 și să se afișeze un mesaj
corespunzător.
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
if (a>1000 && a%2==0)
cout << “Se indeplineste conditia.”;
else
cout << “Nu se indeplineste conditia.”;
return 0;
}

3. Se dau două numere întregi. Să se calculeze suma lor și apoi să se verifice dacă suma obținută este un
număr pozitiv sau negativ.
#include <iostream>
using namespace std;
int main()
{
int a, b, s;
cin >> a >> b;
s=a+b;
cout << “Suma este: ” << s;
if (s>0)
cout << “Suma este pozitiva.”;
if (s<0)
cout << “Suma este negativa.”;
if (s==0)
cout << “Suma este 0.”;
return 0;
}
4. Se dă un număr. Să se afișeze 3 numere după nr. dat și 3 nr. înainte de nr. dat de pe axa numerelor
(consecutive).
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a;
cout << “Numerele dupa nr. dat sunt: ” << a+1 << a+2 << a+3 << endl;
cout << “Numerele inainte de nr. dat sunt: ” << a-1 << a-2 << a-3;
return 0;
}

5. Se dă un număr întreg. Să se afișeze suma cifrelor numărului dat.


#include <iostream>
using namespace std;
int main()
{
int a, s=0;
cin >> a;
while (a!=0)
{
s=s+a%10;
a=a/10;
}
cout << “Suma este: ” << s;
return 0;
}

6. Se dă un număr de 4 cifre. Să se afișeze suma cifrelor numărului dat.


#include <iostream>
using namespace std;
int main()
{
int a, c1, c2, c3, c4;
cin >> a;
c1=a/1000;
c2=a/100%10;
c3=a/10%10;
c4=a%10;
cout << “Suma este: ” << c1+c2+c3+c4;
return 0;
}
7. Se dau două numere. Care dintre cele două numere are suma cifrelor mai mare.
#include <iostream>
using namespace std;
int main()
{
int a, b, s1=0, s2=0, copie1, copie2;
cin >> a >> b;
copie1=a;
copie2=b;
while (a!=0)
{
s1=s1+a%10;
a=a/10;
}
while (b!=0)
{
s2=s2+b%10;
b=b/10;
}
if (s1>s2) cout << “Numarul cu suma cifrelor mai mare este ” << copie1;
if (s1<s2) cout << “Numarul cu suma cifrelor mai mare este ” << copie2;
if (s1==s2) cout << “Numarul cu suma cifrelor mai mare este ” << copie1 << “ si “<< copie2;
return 0;
}

8. Se dă un număr. Să se afișeze numărul de cifre pentru numărul introdus.


#include <iostream>
using namespace std;
int main()
{
int a, k=0;
cin >> a;
while (a!=0)
{
a=a/10;
k=k+1;
}
cout << k;
return 0;
}

9. Se dă un număr. Să se afișeze prima cifră din număr.


#include <iostream>
using namespace std;
int main()
{
int a;,
cin >> a;
while (a>9)
a=a/10;
cout << a;
return 0;
}
10. Se dau două numere. Să se calculeze suma cifrelor ambelor numere.
#include <iostream>
using namespace std;
int main()
{
int a1, a2, s1=0, s2=0;
cin >> a1 >> a2;
while (a1!=0)
{
s1=s1+a1%10;
a1=a1/10;
}
while (a2!=0)
{
s2=s2+a2%10;
a2=a2/10;
}
cout << “Suma cifrelor ambelor numere este: ” << s1+s2;
return 0;
}

11. Se dă un număr. Să se calculeze inversul lui.


#include <iostream>
using namespace std;
int main()
{
int a, invers=0;
cin >> a;
while (a!=0)
{
invers=invers*10+a%10;
a=a/10;
}
cout << invers;
return 0;
}

12. Se dă un număr. Să se verifice dacă are nr. de cifre pare egal cu nr. de cifre impare.
#include <iostream>
using namespace std;
int main()
{
int a, p=0, i=0;
cin >> a;
while (a!=0)
{
if ( (a%10)%2==0)
p=p+1;
else
i=i+1;
a=a/10;
}
if (p==i) cout << “Cifrele pare sunt egale cu cele impare.”;
else cout << “Nr. cifrelor pare nu este egal cu nr. cifrelor impare.”;
return 0;
}
13. Se introduc de la tastatură n nr. întregi. Să se afișeze pentru fiecare nr. introdus, suma cifrelor
sale.
#include <iostream>
using namespace std;
int main()
{
int n, i, x, s;
cin >> n;
for (i=1; i<=n; i++)
{
cin >> x;
s=0;
while (x!=0)
{
s=s+x%10;
x=x/10;
}
cout << "Suma cifrelor numarului este: " << s;
}
return 0;
}

14. Se introduc de la tastatură n numere. Pentru fiecare număr se consideră un k. Să se afișeze k nr.
înaintea fiecărui nr. dat și k nr. după fiecare nr. dat.

#include <iostream>
using namespace std;
int main()
{
int n, i, x, j, k;
cin >> n;
for (i=1; i<=n; i++)
{
cin >> x >> k;
cout << "Numerele sunt: " << endl;
for (j=x-k; j<=x+k; j++)
if (j!=x)
cout << j << endl;
}
return 0;
}
15. Se introduc n numere de la tastatură. Să se afișeze nr. maxim și minim dintre cele introduse.

#include <iostream>
using namespace std;
int main()
{
int n, i, x, max=-32000, min=32000;
cin >> n;
for (i=1; i<=n; i++)
{
cin >> x;
if (x>max) max=x;
if (x<min) min=x;
}
cout << "max=" << max << endl << "min=" << min;
return 0;
}

16. Se dă un șir de mai multe numere. Să se determine numărul care are suma cifrelor maximă.

#include <iostream>
using namespace std;
int main()
{
int n, i, x, s, max=-32000, aux, element;
cin >> n;
for (i=1; i<=n; i++)
{
cin >> x;
s=0;
aux=x;
while (x!=0)
{
s=s+x%10;
x=x/10;
}
if (s>max)
{
max=s;
element=aux;
}
}
cout << "Elementul cu suma cifrelor maxima este " << element;
return 0;
}
17. Se dau 3 nr. întregi. Să se calculeze pentru fiecare număr, numărul de cifre.

#include <iostream>
using namespace std;
int main()
{
int a, b, c, nr1, nr2, nr3;
cin >> a;
nr1=0;
while (a!=0)
{
nr1=nr1+1;
a=a/10;
}
cout << "Primul numar are " << nr1 << " cifre";
cin >> b;
nr2=0;
while (b!=0)
{
nr2=nr2+1;
b=b/10;
}
cout << "Al doilea numar are " << nr2 << " cifre";
cin >> c;
nr3=0;
while (c!=0)
{
nr3=nr3+1;
c=c/10;
}
cout << "Al treilea numar are " << nr3 << " cifre";
return 0;
}

Rezolvarea problemei nr.17 cu funcții (subprograme).


#include <iostream>
using namespace std;
int numaracifre (int nr)
{
int contor=0;
while (nr!=0)
{
contor++;
nr=nr/10;
}
return contor;
}
int main()
{
int a, b, c;
cin>>a>>b>>c;
cout<<"Numarul de cifre ale primului numar sunt: "<<numaracifre(a)<<endl;
cout<<"Numarul de cifre ale celui de al doilea numar sunt: "<<numaracifre(b)<<endl;
cout<<"Numarul de cifre ale celui de al treilea numar sunt: "<<numaracifre(c)<<endl;
return 0;
}
Rezolvarea problemei nr.17 pentru oricâte numere introduse (cu funcții).

#include <iostream>
using namespace std;
int numaracifre (int nr)
{
int contor=0;
while (nr!=0)
{
contor ++;
nr=nr/10;
}
return contor;
}
int main()
{
int n, x, i;
cout << "Cate numere introduci? " << endl;
cin >> n;
for (i=1; i<=n; i++)
{
cout <<"Introduceti numarul "<< i << endl;
cin >> x;
cout << "Nr. de cifre pentru acest numar este: " << numaracifre(x) << endl << endl;
}
return 0;
}