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ă informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.