Fie dat un numar natural n inlocuiti toate aparitiile cifrei c1 din numarul n cu cifra c2
Răspunsuri la întrebare
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.