Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Vom considera ca numerele mari sunt vectori in care elementul de indice 0 indica lungimea numarului,
- /// iar cifrele sunt retinute in ordinea inversa decat cea a citirii.
- /// Suma a doua numere mari
- void add(int A[], int B[])
- { /// A <- A+B
- int i, t = 0;
- for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
- A[i] = (t += A[i] + B[i]) % 10;
- A[0] = i - 1;
- }
- /// Scaderea a doua numere mari
- void sub(int A[], int B[])
- {/// A<-A-B
- int i, t = 0;
- for (i = 1; i <= A[0]; i++) {
- A[i] -= ((i <= B[0]) ? B[i] : 0) + t;
- A[i] += (t = A[i] < 0) * 10;
- }
- for (; A[0] > 1 && !A[A[0]]; A[0]--);
- }
- /// Inmultirea unui numar mare cu un numar mic
- void mul(int A[], int B)
- {/// A<-A*B
- int i, t = 0;
- for (i = 1; i <= A[0] || t; i++, t /= 10)
- A[i] = (t += A[i] * B) % 10;
- A[0] = i - 1;
- }
- /// Inmultirea unui numar mare cu un numar mare
- void sub(int A[], int B[])
- {/// A<-A*B
- int i, t = 0;
- for (i = 1; i <= A[0]; i++) {
- A[i] -= ((i <= B[0]) ? B[i] : 0) + t;
- A[i] += (t = A[i] < 0) * 10;
- }
- for (; A[0] > 1 && !A[A[0]]; A[0]--);
- }
- /// Impartirea unui numar mare la un numar mic
- void div(int A[], int B)
- {/// A<-A/B
- int i, t = 0;
- for (i = A[0]; i > 0; i--, t %= B)
- A[i] = (t = t * 10 + A[i]) / B;
- for (; A[0] > 1 && !A[A[0]]; A[0]--);
- }
- /// Restul unui numar mare la un numar mic
- int mod(int A[], int B)
- { t<-A%B
- int i, t = 0;
- for (i = A[0]; i > 0; i--)
- t = (t * 10 + A[i]) % B;
- return t;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement