Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int* suma(int a[], int b[], int max, bool &incaOCifra) {
- int s[50];
- int t = 0;
- for (int i = max - 1; i >= 0; i--) {
- int suma = a[i] + b[i] + t;
- s[i] = suma % 10;
- t = suma / 10;
- }
- if (t) {
- s[max] = t;
- incaOCifra = true;
- }
- return s;
- }
- int main() {
- int a[50], b[50], n, m, *s, d[50];
- char aa[51], bb[51];
- cout << "a = "; cin >> aa; n = strlen(aa);
- cout << "b = "; cin >> bb; m = strlen(bb);
- int max = n >= m ? n : m;
- for (int i = 0; i < max; i++) {
- a[i] = 0;
- b[i] = 0;
- }
- for (int i = 0; i < n; i++) {
- a[max - n + i] = aa[i] - '0';
- }
- for (int i = 0; i < m; i++) {
- b[max - m + i] = bb[i] - '0';
- }
- cout << "a = ";
- for (int i = max - n; i < max; i++) {
- cout << a[i];
- }
- cout << endl << "b = ";
- for (int i = max - m; i < max; i++) {
- cout << b[i];
- }
- // Adunare:
- bool incaOCifra = false;
- s = suma(a, b, max, incaOCifra);
- cout << endl << "a + b = ";
- if (incaOCifra) {
- cout << s[max];
- }
- for (int i = 0; i < max; i++) {
- cout << s[i];
- }
- // Scadere:
- for (int i = max - 1; i >= 0; i--) {
- int dif = a[i] - b[i];
- if (dif < 0) {
- a[i - 1]--;
- d[i] = 10 + dif;
- }
- else {
- d[i] = dif;
- }
- }
- cout << endl << "a - b = ";
- int i = 0;
- while (d[i] == 0) {
- i++;
- }
- for (; i < max; i++) {
- cout << d[i];
- }
- cout << endl;
- cin >> n;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment