Informatică, întrebare adresată de greeneyes27, 8 ani în urmă

Cineva care poate sa mi explice algoritmul al oglindirii unui nr in c++ foarte amanuntit

Răspunsuri la întrebare

Răspuns de ProTel
0

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

*/


greeneyes27: Nu inteleg de ce s a inmultit acolo cu 10
andrei750238: Inmultim cu 10 ca sa punem mutam toate cifrele actuale ale numarului in stanga cu o pozitie.

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.
Alte întrebări interesante