Informatică, întrebare adresată de ginomarian2, 9 ani în urmă

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 express
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;
}


ginomarian2: multumesc frate mult de tot,am vz unde am gresit
ginomarian2: eu la primul for am uitat sa bag si nr1,iar la al doilea am ignorat +val
ginomarian2: Multumesc mult
Alte întrebări interesante