Algoritm pentru descompunerea unui numar in cifre C++
-
Ce este si ce face acest algoritm?
Acest algoritm este unul dintre algoritmii elementari. Acesta descompune cifrele unui numar, si ne ofera posibilitatea sa putem lucra cu ele. Cu ajutorul acestui algoritm putem sa numaram cate cifre are un numar. De asemenea o alta problema populara in clasa 9 este sa construiesti inversul unui numar (de exemplu sa afisezi 4321 cand numarul tau este 1234).
-
Algoritmul pentru descompunerea unui numar in cifre
#include <iostream> using namespace std; int main() { int numar; cin >> numar; cout << "Numarul " << numar << " are urmatoarele cifre: "; int cifraCurenta; while(numar != 0) { cifraCurenta = numar % 10; numar = numar / 10; cout << cifraCurenta << " "; } return 0; }
Trebuie mai intai sa discutam rolul liniei:
cifraCurenta = numar % 10;
Aceasta linie obtine restul impartirii unui numar la 10. De exemplu daca noi avem numarul 1234, atunci 1234 % 10 va fi egal cu 4. Deoarece 1234 impartit la 10 este 123 rest 4.
Avand aceasta notiune amintita, trecem la urmatoarea linie:
numar = numar / 10;
Pentru a recapitula rapid, aceasta linie imparte numarul la 10, sau mai simplu spus: ii taie ultima cifra. Luand exemplul de mai sus, 1234 / 10 va fi egal cu 123.
Avand aceste linii explicate, tot ce ramane sa facem este sa repetam aceste instructiuni pana cand numarul nostru nu mai are cifre ce trebuie descompuse. Fiind vorba despre o instructiune ce se repeta cu un numar necunoscut de pasi, vom folosii structura repetitiva while.
-
Rasturnatul (sau “inversul”) unui numar in C++
#include <iostream> using namespace std; int main() { int numar; cin >> numar; cout << "Numarul " << numar << " are ca si rasturnat pe: "; int cifraCurenta; int rasturnat = 0; while(numar != 0) { cifraCurenta = numar % 10; numar = numar / 10; rasturnat = rasturnat * 10 + cifraCurenta; } cout << rasturnat; return 0; }
-
Cate cifre are un numar in C++
#include <iostream> using namespace std; int main() { int numar; cin >> numar; cout << "Numarul " << numar << " are "; int nr_cifre = 0; while(numar != 0) { numar = numar / 10; nr_cifre++; } cout << nr_cifre << " cifre."; return 0; }