""" Sección Declarativa Descripción: Calcula el producto de dos números enteros utilizando exclusivamente sumas sucesivas (sin el operador *). Implementa una optimización sumando el valor mayor la cantidad de veces que indica el valor menor[cite: 13, 20]. Casos de prueba: - 3, 4 -> 12 (3 iteraciones) - 4, 3 -> 12 (3 iteraciones) - -3, 4 -> -12 - -3, -4 -> 12 - 0, 5 -> 0 (0 iteraciones) - 1, 999999 -> 999999 (1 iteración) Recursos: - a, b (int): Factores ingresados por el usuario - signo (int): Mantiene el signo final del producto (+1 o -1) - abs_a, abs_b (int): Valores absolutos de los factores - mayor, menor (int): Variables de optimización - producto (int): Acumulador de la suma """ # Sección Algorítmica # 1) Prólogo print("--- Multiplicación por sumas sucesivas ---") a = int(input("Ingrese el primer entero (a): ")) b = int(input("Ingrese el segundo entero (b): ")) # 2) Desarrollo # Determinación matemática del signo: será negativo si y solo si un factor es negativo # Usamos != como un XOR lógico para evaluar los signos if (a < 0) != (b < 0): signo = -1 else: signo = 1 # Extracción de valores absolutos para simplificar el bucle iterativo abs_a = -a if a < 0 else a abs_b = -b if b < 0 else b # Optimización: Para minimizar el número de iteraciones, determinamos cuál es el mayor if abs_a > abs_b: mayor = abs_a menor = abs_b else: mayor = abs_b menor = abs_a producto = 0 # Iteración acumulativa usando la variable 'menor' como límite for i in range(menor): producto = producto + mayor # Aplicamos el signo determinado previamente al resultado absoluto producto_final = producto if signo == 1 else -producto # 3) Epílogo print(f"\nResultado de {a} x {b}: {producto_final}") print(f"(Calculado en {menor} iteraciones)") input("Pulse Enter para terminar el programa")