Vom numi mari numerele naturale care contin mai mult de 20 de cifre semnificative. Sa se defineasca un tip de date pentru numerele mari si sa se scrie proceduri care sa adune si sa scada astfel de numere.
Am nevoie de el urgent si rog sa faceti toate punctele stabilite. :)
Răspunsuri la întrebare
Răspuns de
0
Uite un exemplu cu adunarea a doua numere mari (ai programul in C++) :
#include<iostream>
#include<fstream>
#include<cstring>
#define NMAX 10001
using namespace std;
ifstream fin("suma.in");
ofstream fout("suma.out");
int n;
long a[NMAX],b[NMAX],s[NMAX];
void citire(long a[])
{
char sir[1001];
int i,k;
fin.getline(sir,1001);
k=strlen(sir);
a[0]=k;
for(i=k-1;i>=0;i--)
a[k-i]=sir[i]-'0';
}
void afisare(long a[])
{
int i;
cout<<a[0]<<' ';
for(i=a[0];i>0;i--) cout<<a[i];
cout<<'\n';
}
void adunare(long a[], long b[])
//a=a+b
{
int i,t=0;
for (i=1; i<=a[0] || i<=b[0] || t; i++)
{ t=a[i]+b[i]+t;
a[i]=t%10;
t=t/10;
}
a[0] = i - 1; // numărul de cifre
}
int main()
{
a[0]=1;a[0]=0;
s[0]=1;s[1]=0;
while(!fin.eof())
{
citire(a);
afisare(a);
adunare(s,a);
}
afisare(s);
fin.close();
fout.close();
return 0;
}
P.S.Numerele mari le poti memora sub forma unui vector,in care memorezi cifrele numarului.
#include<iostream>
#include<fstream>
#include<cstring>
#define NMAX 10001
using namespace std;
ifstream fin("suma.in");
ofstream fout("suma.out");
int n;
long a[NMAX],b[NMAX],s[NMAX];
void citire(long a[])
{
char sir[1001];
int i,k;
fin.getline(sir,1001);
k=strlen(sir);
a[0]=k;
for(i=k-1;i>=0;i--)
a[k-i]=sir[i]-'0';
}
void afisare(long a[])
{
int i;
cout<<a[0]<<' ';
for(i=a[0];i>0;i--) cout<<a[i];
cout<<'\n';
}
void adunare(long a[], long b[])
//a=a+b
{
int i,t=0;
for (i=1; i<=a[0] || i<=b[0] || t; i++)
{ t=a[i]+b[i]+t;
a[i]=t%10;
t=t/10;
}
a[0] = i - 1; // numărul de cifre
}
int main()
{
a[0]=1;a[0]=0;
s[0]=1;s[1]=0;
while(!fin.eof())
{
citire(a);
afisare(a);
adunare(s,a);
}
afisare(s);
fin.close();
fout.close();
return 0;
}
P.S.Numerele mari le poti memora sub forma unui vector,in care memorezi cifrele numarului.
petrusula:
Dar la pascal?
Alte întrebări interesante
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Informatică,
9 ani în urmă
Biologie,
9 ani în urmă
Matematică,
10 ani în urmă
Istorie,
10 ani în urmă