Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string.h>
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- void afisare(int vector[201]) {
- for (int i = vector[0]; i > 0; i--)
- cout << vector[i];
- }
- void suma(int numar1[201], int numar2[201], int suma_mare[201]) {
- int transport = 0, n;
- if (numar1[0] < numar2[0]) {
- n = numar2[0];
- for (int i = numar1[0] + 1; i <= numar2[0]; i++)
- numar1[i] = 0;
- }
- else {
- n = numar1[0];
- for (int i = numar2[0] + 1; i <= numar1[0]; i++)
- numar2[i] = 0;
- }
- int i;
- for (i = 1; i <= n; i++) {
- int cifra = numar1[i] + numar2[i] + transport;
- suma_mare[i] = cifra % 10;
- transport = cifra / 10;
- }
- if (transport)
- suma_mare[i] = transport;
- else
- i--;
- suma_mare[0] = i;
- afisare(suma_mare);
- }
- void diferenta(int numar1[201], int numar2[201], int diferenta_mare[201]) {
- if (numar1[0] < numar2[0])
- diferenta(numar2, numar1, diferenta_mare);
- else {
- int i, t = 0;
- for (i = 1; i <= numar1[0]; i++) {
- diferenta_mare[i] = numar1[i] - numar2[i] + t;
- if (diferenta_mare[i] < 0) {
- diferenta_mare[i] += 10;
- t = -1;
- }
- else
- t = 0;
- }
- i--;
- while (i && !diferenta_mare[i])
- i--;
- if (i == 0) {
- printf("0");
- }
- else {
- diferenta_mare[0] = i;
- afisare(diferenta_mare);
- }
- }
- }
- void inmultire(int a[200], int numar) {
- if (numar == 0) {
- cout << "0";
- exit(0);
- }
- int i, t = 0;
- for (i = 1; i <= a[0]; i++) {
- a[i] = a[i] * numar + t;
- t = a[i] / 10;
- a[i] = a[i] % 10;
- }
- while (t) {
- a[++a[0]] = t % 10;
- t /= 10;
- }
- afisare(a);
- cout << "\n";
- }
- int main()
- {
- int a[200] = { 0 }, b[200] = { 0 }, sumanr[200] = { 0 }, diferentanr[200] = { 0 }, scalar;
- string nr1, nr2, scalar1;
- ifstream f("numar_mare.txt");
- getline(f, nr1);
- getline(f, nr2);
- getline(f, scalar1);
- a[0] = nr1.length();
- b[0] = nr2.length();
- scalar = stoi(scalar1);
- for (int i = nr1.length() - 1; i >= 0; i--)
- {
- a[nr1.length() - i] = (int)(nr1[i] - '0');
- }
- for (int i = nr2.length() - 1; i >= 0; i--)
- {
- b[nr2.length() - i] = (int)(nr2[i] - '0');
- }
- suma(a, b, sumanr);
- cout << "\n";
- diferenta(a, b, diferentanr);
- cout << "\n";
- inmultire(a, scalar);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement