█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 6522

Problema 0x32 - Sumar dos números muy grandes

  • Autor: carrillodev
  • Fecha: 2022-07-16 05:34:34 UTC (Hace más de 1 año)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.002 s 0 KBi
#2
Correcto
0.005 s 2 KBi
#3
Correcto
0.002 s 0 KBi
#4
Correcto
0.003 s 0 KBi
#5
Correcto
0.002 s 0 KBi
#6
Correcto
0.002 s 0 KBi
#7
Correcto
0.002 s 0 KBi
#8
Correcto
0.002 s 0 KBi
#9
Correcto
0.002 s 0 KBi
#10
Correcto
0.002 s 0 KBi
#11
Correcto
0.002 s 0 KBi
#12
Correcto
0.003 s 0 KBi
#13
Correcto
0.003 s 0 KBi
#14
Correcto
0.002 s 0 KBi
#15
Correcto
0.002 s 0 KBi
#16
Correcto
0.003 s 0 KBi
#17
Correcto
0.002 s 0 KBi
#18
Correcto
0.002 s 0 KBi
#19
Correcto
0.003 s 0 KBi
#20
Correcto
0.002 s 0 KBi
#21
Correcto
0.001 s 0 KBi
#22
Correcto
0.002 s 0 KBi
#23
Correcto
0.005 s 8 KBi
#24
Correcto
0.002 s 0 KBi
#25
Correcto
0.002 s 0 KBi
#26
Correcto
0.002 s 0 KBi
#27
Correcto
0.002 s 0 KBi
#28
Correcto
0.005 s 1 KBi
#29
Correcto
0.005 s 0 KBi
#30
Correcto
0.004 s 0 KBi
#31
Correcto
0.004 s 0 KBi
#32
Correcto
0.004 s 0 KBi
#33
Correcto
0.007 s 0 KBi
#34
Correcto
0.006 s 0 KBi
#35
Correcto
0.004 s 0 KBi
#36
Correcto
0.005 s 0 KBi
#37
Correcto
0.004 s 0 KBi
#38
Correcto
0.004 s 0 KBi
Puntos totales: 100 / 100

Código

#include <bits/stdc++.h>
using namespace std;

void printCharArray(vector<char> arr) {
	for (int i = 0; i < arr.size(); i++)
		cout << arr[i];
	cout << endl;
}

int main() {
	string x, y;
	cin >> x >> y;
	vector<char> x_arr(x.begin(), x.end());
	vector<char> y_arr(y.begin(), y.end());
	vector<char> result;
	int carry = 0;
	int startIndex = x_arr.size() <= y_arr.size() ? x_arr.size() - 1 : y_arr.size() - 1;
  int i = x_arr.size() - 1;
  int j = y_arr.size() - 1;

  while(i >= 0 && j >= 0) {
    int sum = (x_arr[i] - '0') + (y_arr[j] - '0') + carry;
		if (sum <= 9) {
			result.insert(result.begin(), sum + 48);
			carry = 0;
		} else {
			result.insert(result.begin(), (sum % 10) + 48);
			carry = sum / 10;
		}
    i--;
    j--;
  }
  
  if (i >= 0) {
		for (int k = i; k >= 0; k--) {
      int sum = (x_arr[k] - '0') + carry;
      if(sum <= 9) {
        result.insert(result.begin(), sum + 48);
        carry = 0;
      } else {
			  result.insert(result.begin(), (sum % 10) + 48);
        carry = sum / 10;
      }
		}
	}
  
	if (j >= 0) {
		for (int k = j; k >= 0; k--) {
			int sum = (y_arr[k] - '0') + carry;
      if(sum <= 9) {
        result.insert(result.begin(), sum + 48);
        carry = 0;
      } else {
			  result.insert(result.begin(), (sum % 10) + 48);
        carry = sum / 10;
      }
		}
	}
  if (carry > 0) result.insert(result.begin(), carry + 48);
	printCharArray(result);
	return 0;
}