Sunteți pe pagina 1din 5

Fișă de lucru. Algoritmi elementari. Prelucrarea cifrelor unui număr.

Problemă exemplu:

Se citește un număr natural de maxim 9 cifre. Să se afișeze suma cifrelor numărului.

Date de intrare: n=12345

Date de ieșire: s=15

#include<iostream>
using namespace std;

int main()
{
unsigned int n, s, c; //n - numărul, s - suma cifrelor, c - cifra
cin>>n; //se citește numărul
while(n!=0){ //cât timp n are cifre
c=n%10; //se preia ultima cifră a lui n în variabila c
s=s+c; //se adună cifra c la suma s
n=n/10; //se elimină ultima cifră a lui n
}
cout<<s; //se afișează suma
return 0;

Probleme propuse:

1. Se citește un număr natural de maxim 9 cifre. Să se afișeze produsul cifrelor numărului.

Date de intrare: n=123

Date de ieșire: p=6

2. Se citește un număr natural de maxim 9 cifre. Să se afișeze câte cifre pare și câte cifre impare
are numărul.

Date de intrare: n=12345

Date de ieșire: cifre pare=2 cifre impare=3

3. Se citește un număr natural de maxim 9 cifre. Să se afișeze suma cifrelor pare ale numărului.

Date de intrare: n=12345

Date de ieșire: s=6

4. Se citește un număr natural de maxim 9 cifre. Să se afișeze produsul cifrelor impare ale
numărului.

Date de intrare: n=12345

Date de ieșire: p=15

5. Se citește un număr natural de maxim 9 cifre și o cifră k. Să se afișeze câte cifre egale cu k are
numărul.

Date de intrare: n=32343, k=3

Date de ieșire: 3

6. Se citește un număr natural de maxim 9 cifre. Să se afișeze mesajul da, dacă untima cifră a
numărului este egală cu prima cifră a numărului.

Date de intrare: n=52345

Date de ieșire: DA

Date de intrare: n=12345

Date de ieșire: NU

7. Se citește un număr natural de maxim 9 cifre. Să se afișeze dacă primele două cifre ale
numărului formează un număr par.

Date de intrare: n=12345

Date de ieșire: DA

Date de intrare: n=1345

Date de ieșire: NU

8. Se citește un număr natural de maxim 9 cifre. Să se afișeze dacă numărul este divizibil cu
prima sa cifră.

Date de intrare: n=52345

Date de ieșire: DA

Date de intrare: n=42345

Date de ieșire: NU

9. Se citește un număr natural de maxim 9 cifre. Să se afișeze produsul cifrelor aflate pe poziții
pare în număr. Numărătoarea pozițiilor începe de la ultima cifră.

Date de intrare: n=12345

Date de ieșire: p=6

10. Se citește un număr natural de maxim 9 cifre. Să se afișeze căte cifre egale cu ultima cifră are
numărul.

Date de intrare: n=52345

Date de ieșire: 1

Problemă exemplu:

Se citește un număr natural de maxim 9 cifre. Să se afișeze răsturnatul numărului.

Date de intrare: n=12345

Date de ieșire: r=12345

#include<iostream>
using namespace std;

int main()
{
unsigned int n, c, r; //n - numărul,
//c - cifra, r - răsturnatul
cin>>n; //se citește numărul
r=0; //se initializează rasturnatul cu 0
while(n!=0){ //cât timp n are cifre
c=n%10; //se preia ultima cifră a lui n în variabila c
r=r*10+c; //se adaugă cifra c la sfârșitul numărului r
n=n/10; //se elimină ultima cifră a lui n
}
//!!!ATENTIE!!! - aici n are valoarea 0
cout<<r; //se afișează răsturnatul

return 0;
}

Probleme propuse:

1. Se citește un număr natural de maxim 9 cifre. Să se afișeze mesajul DA dacă numărul este
palindrom, sau mesajul NU în caz contrar.

Date de intrare: n=12345

Date de ieșire: NU

Date de intrare: n=54345

Date de ieșire: DA

2. Se citește un număr natural de maxim 9 cifre. Să se afișeze dacă răsturnatul numărului este
divizibil cu 7.

Date de intrare: n=12345

Date de ieșire: NU

Date de intrare: n=94

Date de ieșire: DA

Problemă exemplu:

Se citește un număr natural de maxim 9 cifre. Să se afișeze numărul format din cifrele pare ale
numărului citit și numărul format din cifrele impare ale numărului citit.

Date de intrare: n=12345

Date de ieșire: np=24 ni=135

#include<iostream>
using namespace std;

int main()
{
unsigned int n, c, np, ni, pp, pi;//n - numărul, np - numărul cu
//cifre pare c - cifra, ni - numărul cu cifre impare
// pp, pi reprezintă puteri ale lui 10
cin>>n; //se citește numărul
np=0; //se initializează np și ni cu 0
ni=0;
pp=1; //pp și pi se initializează cu 10 la puterea 0
pi=1;
while(n!=0){ //cât timp n are cifre
c=n%10; //se preia ultima cifră a lui n în variabila c
if(c%10%2==0){ //dacă c este par
np=np+c*pp; //se adaugă cifra c la în fața numărului np
pp=pp*10; //pp se înmulțește cu 10;
}
else{ //altfel
ni=ni+c*pi; //se adaugă cifra c la în fața numărului ni
pi=pi*10; //pi se înmulțește cu 10;
}
n=n/10; //se elimină ultima cifră a lui n
}
//!!!ATENTIE!!! - aici n are valoarea 0
cout<<np<<" "<<ni; //se afișează np și ni

return 0;
}

Probleme propuse:

1. Se citește un număr natural de maxim 9 cifre. Să se afișeze numărul format din cifrele de pe
poziții pare ale numărului citit și numărul format din cifrele de pe poziții impare ale numărului citit.
Numărătoarea pozițiilor începe de la ultima cifră.

Date de intrare: n=12345

Date de ieșire: np=24 ni=135

2. Se citește un număr natural de maxim 9 cifre. Să se elimine toate cifrele pare din număr.

Date de intrare: n=12345

Date de ieșire: 135

3. Se citește un număr natural de maxim 9 cifre. Să se elimine toate cifrele impare din număr.

Date de intrare: n=12345

Date de ieșire: 24

4. Se citește un număr natural de maxim 9 cifre și o cifră k. Să se elimine toate cifrele egale cu k
din număr.

Date de intrare: n=12325 k=2

Date de ieșire: 135

Problemă exemplu:

Se citește un număr natural n de maxim 4 cifre, și un șir de n numere naturale de maxim 9 cifre.
Câte numere din șir au suma cífrelos pară.

Date de intrare: n=5 și 23 33 76 11 22

Date de ieșire: 3

#include<iostream>
using namespace std;

int main()
{
unsigned int n, c, x, s, k, i; //n - numărul, x - număr din șir
//c - cifra, s - suma cifrelor numărului din șir
// k - câte numere îndeplinesc condiția(contor)
cin>>n; //se citește numărul
k=0; //se inițializează contorul cu 0
for(i=1; i<=n; i++){ //folosim for pentru a citi n numere(i=1-n)
cin>>x; //citim un număr din șir
//ALGORITM DE PRELUCRARE CIFRE
while(x!=0){ //cât timp x are cifre
c=x%10; //se preia ultima cifră a lui x în variabila c
s=s+c; //se adaugă cifra la sumă
x=x/10; //se elimină ultima cifră a lui x
}
if(s%2==0){ //dacă suma cifrelor este pară
k++; //atunci crește contorul cu 1
}
}
cout<<k; //se afișează rezultatul

return 0;
}

Probleme propuse:

1. Se citește un număr natural n de maxim 4 cifre, și un șir de n numere naturale de maxim 9 cifre.
Câte numere din șir au produsul cífrelor impar.

Date de intrare: n=5 și 23 33 76 11 22

Date de ieșire: 2

2. Se citește un număr natural n de maxim 4 cifre, și un șir de n numere naturale de maxim 9 cifre.
Să se afișeze suma numerelor din șir care au produsul cífrelor impar.

Date de intrare: n=5 și 23 33 76 11 22

Date de ieșire: 44

3. Se citește un număr natural n de maxim 4 cifre, și un șir de n numere naturale de maxim 9 cifre.
Să se afișeze produsul numerelor din șir care au suma cífrelor pară.

Date de intrare: n=5 și 23 33 76 11 22

Date de ieșire: 7986

4. Se citește un număr natural n de maxim 4 cifre, și un șir de n numere naturale de maxim 9 cifre.
Să se afișeze câte numere din șir sunt palindrom.

Date de intrare: n=5 și 23 33 76 11 22

Date de ieșire: 3

5. Se citește un număr natural n de maxim 4 cifre, și un șir de n numere naturale de maxim 9 cifre.
Să se afișeze câte numere din șir sunt mai mari decât răsturnatul lor.

Date de intrare: n=5 și 23 33 76 11 22

Date de ieșire: 1

6. Se citește un număr natural n de maxim 4 cifre, și un șir de n numere naturale de maxim 9 cifre.
Să se afișeze câte numere din șir au ultima cifră egală cu penultima.

Date de intrare: n=5 și 23 33 76 11 22

Date de ieșire: 3

7. Se citește un număr natural n de maxim 4 cifre, un șir de n numere naturale de maxim 9 cifre și
o cifră k. Să se afișeze câte numere din șir conțin cifra k.

Date de intrare: n=5 și 23 33 76 11 22 și k=3

Date de ieșire: 2