Cineva care poate sa mi explice algoritmul al oglindirii unui nr in c++ foarte amanuntit
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main() {
int n, ogl,cif,n1;
cout<<"introduceti numarul n :";
cin>>n;
n1=n;
ogl=0; //oglinditul numarului n citit de la tastatura
//oglinditul numarului n este un numar format cu cifrele numarului n
//citit de la dreapta la stanga
//n=456 --> ogl=654
while (n>0){
cif=n%10; //cif este restul impartirii numarului n la 10
ogl=ogl*10+cif;
n=n/10; //partea intreaga din n impartit la 10
}
cout<<"\n oglinditul numarului : "<<n1<<" este : "<<ogl;
return 0;
}
/* exemplu
n<--234
ogl<--0
n>0 deci cif <- 234%10=4
ogl <--ogl*10 + cif = 0+4=4
n<--234/10=23
n=23 deci cif <- 23%10=3
ogl <--4*10 + 3 = 40+3=43
n<--23/10=2
n=2 deci cif <- 2%10=2
ogl <--43*10 + 2 = 430+2=432
n<--2/10=0
STOP --> ogl este 432
*/
Poate ca un exemplu matematic simplu ar fi mai usor de inteles.
Daca avem numarul 123 si vrem sa adaugam la finalul lui cifra 9 cum procedam? Ce operatii matematice trebuie sa efectuam numerelor 123 si 9 sa ajungem la 1239? Inmultim 123 cu 10, apoi adaugam 9.
In general, daca vrem sa concatenam un numar cu o cifra inmultim numarul cu 10 si adunam cifra. Asta facem si in algoritm.