Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int a,b;
int main ()
{
cin>>a>>b;
cout<<a+b;
return 0;
}
Răspuns:
#include <fstream>
#include <cstring>
#define lgMax 100000
using namespace std;
ifstream fin("adunare.in");
ofstream fout("adunare.out");
typedef short int NrMare[lgMax+5];
NrMare a,b,c;
void citire(NrMare x)
{
char s[lgMax+5];
fin>>s; ///Citim numarul ca un sir de caractere
int n=strlen(s); ///Calculam numarul de cifre a numarului
for(int i=n; i>=0; i--)
x[n-i]=(int)(s[i]-'0'); ///Retinem cifrele invers
x[0]=n; ///Memoram numarul total de cifre
}
void suma(NrMare a, NrMare b, NrMare rezultat)
{
int t=0,Max;
/// Completam numarul cel mai mic cu zeroouri nesemnificative
if(a[0]<b[0])
{
Max=b[0];
for(int i=a[0]+1;i<=b[0];i++)
a[i]=0;
}
else
{
Max=a[0];
for(int i=b[0]+1;i<=a[0];i++)
b[i]=0;
}
int i;
for(i=1;i<=Max; i++)
{
int cifra=a[i]+b[i]+t;
rezultat[i]=cifra % 10;
t=cifra/10;
}
if(t)
rezultat[i]=t;
else
i--;
rezultat[0]=i;
}
void afisare(NrMare x)
{
for(int i=x[0];i>0;i--)
fout<<x[i];
}
int main()
{
citire(a);
citire(b);
suma(a,b,c);
afisare(c);
return 0;
}
Explicație:
Numerele A și B nu se incadreaza in long long =>
vom folosi "Lucrul pe numere mari".
Adunare se face cifră cu cifră verificând transportul (ca și pe hârtie).
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că resursele disponibile v-au fost de ajutor. Pentru întrebări sau asistență suplimentară, nu ezitați să ne contactați. Ne bucurăm să vă revedem în curând și vă invităm să ne salvați în lista de site-uri preferate!