#include using namespace std; int A[100] = {0}, B[100] = {0}, W[100] = {0}, W2[100] = {0}; void dodaj (int k) { for ( int i = 1; i <= k; i++) { W [i+1] = ( W[i] + A[i] + B[i] ) /10; W [i] = ( W[i] + A[i] + B[i] ) %10; } W[0] = k; } void odejmij (int k, int k1, int k2) { int Aod[100] = {0}, Bod[100] = {0}, i = 1, c = 0; bool ujemna = false; if (k1 < k2) ujemna = true; if (k1 == k2 && A[k1] < B[k2]) ujemna = true; if (ujemna) for (int j = 0; j <= k2; j++) { Aod[j] = B[j]; Bod[j] = A[j]; } else for (int j = 0; j <=k1; j++) { Aod[j] = A[j]; Bod[j] = B[j]; } for (i = 0; i < k; i++) { if (Aod[i + 1] - Bod[i + 1] - c < 0) { W2[k - 1] = Aod[i + 1] + 10 - Bod[i + 1] - c; c = 1; } else { W2[k - 1] = Aod[i + 1] - Bod[i + 1] - c; c = 0; } } if (ujemna) W2[0] = -1; } int main() { string sliczba; string sliczba2; int k; int k1; int k2; cin >> sliczba; k1 = sliczba.length(); int j = 1; for ( int i = sliczba.length()-1; i >= 0; i-- ) { A[j] = sliczba.at (i) - '0' ; j++; } cin >> sliczba2; k2 = sliczba2.length(); if ( k1 > k2 ) k = k1; else k = k2; j = 1; for ( int i = sliczba2.length()-1; i >= 0; i-- ) { B[j] = sliczba2.at (i) - '0'; j++; } dodaj(k); odejmij(k,k1,k2); cout << "Wynik dodawania: "; for ( int i = W[0]; i > 0; i--) { cout << W[i]; } cout << " " << endl; cout << "Wynik odejmowania: "; if (W2[0] !=0) cout << '-'; for (int i = 1; i <= k; i++ ) { cout << W2[i]; } return 0; }