Cerința
Se dau două numere b1 b2, reprezentând două baze de numeraţie şi două şiruri de cifre x y, reprezentând două numere: x în baza b1, y în baza b2. Determinaţi suma numerelor x şi y în baza 10.
Date de intrare
Fișierul de intrare baze1.in conține pe prima linie numerele b1 b2, iar pe a doua linie cele două şiruri de cifre cu semnificaţia de mai sus.
Date de ieșire
Fișierul de ieșire baze1.out va conține pe prima linie numărul S, reprezentând suma dintre x şi y.
Restricții și precizări
2 ≤ b1,b2 ≤ 10
reprezentarea în baza 10 a lui x, y şi suma lor nu depăşeşte 2 000 000 000
Exemplu
baze1.in
2 5
110 213
baze1.out
64
Explicație
110(2) = 6
213(5) = 58
6 + 58 = 64
Răspunsuri la întrebare
Răspuns de
1
#include <fstream>
#include <cstring>
using namespace std;
int b1,b2,nr1,nr2,val,i;
char s1[25],s2[25],ch;
int main()
{
ifstream f("baze1.in");
ofstream g("baze1.out");
f>>b1>>b2;
f>>s1>>s2;
for(i=0;i<strlen(s1);i++)
{
val=s1[i]-'0';
nr1=nr1*b1+val;
}
for(i=0;i<strlen(s2);i++)
{
val=s2[i]-'0';
nr2=nr2*b2+val;
}
g<<nr1+nr2;
f.close();
g.close();
return 0;
}
#include <cstring>
using namespace std;
int b1,b2,nr1,nr2,val,i;
char s1[25],s2[25],ch;
int main()
{
ifstream f("baze1.in");
ofstream g("baze1.out");
f>>b1>>b2;
f>>s1>>s2;
for(i=0;i<strlen(s1);i++)
{
val=s1[i]-'0';
nr1=nr1*b1+val;
}
for(i=0;i<strlen(s2);i++)
{
val=s2[i]-'0';
nr2=nr2*b2+val;
}
g<<nr1+nr2;
f.close();
g.close();
return 0;
}
ginomarian2:
multumesc frate mult de tot,am vz unde am gresit
Alte întrebări interesante
Fizică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Franceza,
9 ani în urmă