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

Fie dat un numar natural n inlocuiti toate aparitiile cifrei c1 din numarul n cu cifra c2

Răspunsuri la întrebare

Răspuns de AdiAfr
2

Salut! Am scris codul asta:


#include <iostream>

using namespace std;

int main()

{

   int n;

   int c1, c2;

   cin >> n >> c1 >> c2;

   int zec = 10;

   int aux1 = n;

   int aux2;

   while(aux1!=0){

       if(aux1%10 == c1){

           aux2 = c2*(zec/10) + n%(zec/10);

           n = n/zec*zec + aux2;

       }

       aux1 = aux1/10;

       zec = zec*10;

   }

   cout << n;

   return 0;

}

  L-am testat si pare sa mearga. Observi ca ma folosesc de niste auxiliare, aux1 este de fapt n pe care il impart la fiecare ciclu la 10 si verific daca ultima cifra e c1, iar in cazul respectiv folosesc o variabila aux2 pentru a construi noua parte din dreapta a lui n(adica de la c1 la dreapta) cu c1 inlocuit cu c2, apoi impart n la zec(care-l multiplic cu 10 la fiecare ciclu) si inmultesc cu zec(spre exemplu am 1234/100*100 = 1200) si la acesta din urma adun noua parte din dreapta a lui n, aux2 (sa zicem c1 = 3, c2 = 4, o sa avem aux2 = 44 si n = 1200 + 44 = 1244). Sper sa-ntelegi.

Alte întrebări interesante