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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru orice întrebare sau dacă aveți nevoie de asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!