#871 pbinfo va rooooog dau coroana
Răspunsuri la întrebare
Răspuns:
1. Normal cu descompunere in cifre
#include <iostream>
using namespace std;
int n , d;
long long s = 0;
int main()
{
long long nr,c1,c2;
cin >> nr >> c1>>c2;
if(nr == 0)
{
cout <<c2;
return 0;
}
long long pow = 1;
long long afis = 0;
while(nr > 0)
{
if(nr % 10 == c1)
afis = afis + pow * c2;
else afis = afis + pow *(nr % 10);
nr = nr / 10;
pow = pow * 10;
}
cout << afis;
}
2. Parcurgi fiecare cifra si o schimbi cand ajungi la cea necesara.(folosim string)
#include <iostream>
using namespace std;
int main()
{
string g;
char c1,c2;
cin >> g >> c1 >> c2;
for(int i = 0; i < g.length(); i++)
{
if(g[i] == c1)
g[i] = c2;
}
cout << g;
return 0;
}
Explicație:
Din cate am vazut eu , banuiesc ca , cazul care iti lipseste tie este acela pentru momentul cand numarul este 0. Daca ai facut o parcurgere cat timp numarul nu este 0 iti da raspuns gresit deoarece nu se inlocuieste cu nimic daca numarul citit din fisierul site-ului este 0 ;D
Soluția mea (100p)
#include <iostream>
using namespace std;
int main()
{
int n,x=0,p=1,c,c1,c2;
cin>>n>>c1>>c2;
do
{
c=n%10;
if (c==c1) c=c2;
x=c*p+x;
p=p*10;
n/=10;
}while (n);
cout<<x;
return 0;
}
Soluția oficială:
#include <iostream>
using namespace std;
int n,c1,c2,c,x=0,p=1;
int main()
{
cin>>n>>c1>>c2;
do
{ c=n%10;
if(c==c1)x=x+p*c2;
else x=x+p*c;
p=p*10;
n/=10;
}while(n>0);
cout<<x;
return 0;
}