Enviado por Kalith en C/C++, Programacion
Sumar numeros muy grandes c++
Buenas.
Resolviendo un pequeño problema me encontre con que debía sumar numeros gigantes que no cabían en ningún tipo de dato disponible en c++ asi que pues hice esta pequeña implementacion, supongo que deben existir formas mas cortas de hacerlo, mas eficientes, y que lo hagan de forma mas óptima asi como existe le algoritmo de Karatsuba para la multiplicación pero vale acotar que es solo una chapuza.
Suerte que existen clases ya hechas para numeros grandes en c++, esta a recomendacion de Llyn la cual es BigInt luego habrá tiempo de hablar de ella.
Sin mas largas al asunto dejo el codigo solo de la funcion, el archivo completo esta AQUI
string sumarCadena(string str1, string str2)
{
int llevo = 0, parcial;
string res = "";
stringstream ultimo;
if(str1.length() > str2.length())
str2 = completar(str2, str1.length() - str2.length());
else
if(str1.length() < str2.length())
str1 = completar(str1, str2.length() - str1.length());
for(int i = str1.length() - 1; i >= 0; i--)
{
parcial = charToInt(str1[i]) + charToInt(str2[i]) + llevo;
if(parcial > 0x9 && i != 0x0)
{
parcial -= 10;
llevo = 1;
}
else
llevo = 0;
if(i == 0x0 && parcial > 0x9)
{
ultimo << parcial;
res += invertirCadena(ultimo.str());
}
else
res += intToChar(parcial);
}
return invertirCadena(res);
}
saludos
Posts Relacionados
- Suma de dos números en base ‘n’ Tenemos dos números como cadena de caracteres, ambas en la...
- itoa y atoi Buenas. Ya de alguna ocasión Llyn hablo sobre una de...
- Enviar emails con Visual C++ .NET Despues de tiempo sin escribir (ya se me acabaron las...
- Intento de grep en c++ Buenas. Necesitaba este pequeño programita para algo que estoy haciendo,...
- Balanceo de expresiones usando pilas en c++ Buenas El balanceo de expresiones (no se con que otro...
- 500! Buenas. Hace unos días en un post sobre permutaciones dabamos...



ahora que tenemos mas contenido, la seccion de posts relacionados cobra vida :o
saludos a todos y esperando con ansias mas entradas de este tema (me encantaria ver la version de Llyn)
Usandola verdad que lo de reverse si me imagine que existía pero he mirado muy poco, por no decir nada, la stl de c++, jeje y si la gestión de memoria es patetetica, pero no quería trabajar con chars a pelo y ponerme a luchar contra los punteros porque se que voy a perder y pues la idea era hacer algo rapidito jeje.. si lo de los numeros tienes razón por eso completo con ceros el menor (si lo hay) para que queden del tamaño del mayor, es eso a lo que te refieres?
estamos hablando
saludos
P.D. B@cho ya quiere hacer su mini coliseo de codigo :p
Usando