Práctica 4 - Divide y Vencerás
Práctica 4 - Divide y Vencerás
Práctica 4 - Divide y Vencerás
Con ayuda del editor de texto y compilador Visual Code Studio se resolverla las problemáticas
planteada para la práctica 3.
“multiplicacion_larga”:
La función toma dos argumentos de tipo long long: a y b, los cuales son los números que se
multiplicarán.
La función comienza con una comprobación para ver si ambos números son lo suficientemente
pequeños (menores que 10). Si lo son, se realiza una multiplicación directa y se devuelve el resultado.
Esto actúa como un caso base para detener la recursión cuando los números son pequeños.
Si los números no son pequeños, se realiza una multiplicación larga eficiente. Para ello, se divide el
proceso en varias etapas.
Se calcula el número de dígitos en los números a y b utilizando bucles while. Esto se hace para
determinar la cantidad de dígitos en los números y, por lo tanto, la longitud de la multiplicación.
Se determina el número n, que es el máximo de los números de dígitos en a y b. Esto asegura que
ambos números tengan la misma longitud.
Luego, se divide los números a y b en dos mitades, a1 y a0 para a, y b1 y b0 para b. Esto se hace
calculando un factor p, que se usa para dividir los números.
Se realizan tres multiplicaciones recursivas:
ac es el producto de a1 y b1.
bd es el producto de a0 y b0.
ad_bc se calcula restando ac y bd de la multiplicación de (a1 + a0) y (b1 + b0).
Finalmente, se calcula el producto final combinando estos resultados y teniendo en cuenta la posición
de los dígitos (p) para obtener el resultado correcto.
El resultado de la multiplicación se devuelve como un valor long long.
Archivo “Funciones.h”
Código principal
Resultados
Menú de opciones
Opción 1
Conclusión
El programa funciona correctamente con números bastante grandes, pero deja de funcionar y se cierra
cuando los números introducidos superan el tamaño en bytes del tipo de dato long long, aun con esto,
la practica se realizo satisfactoriamente