Escrever um programa que leia dois números inteiros e calcule o resultado da multiplicação de um pelo outro sem utilizar a operação de multiplicação (ou seja, utilizando apenas soma).
Passo 1
O enunciado pede um programa que leia dois inteiros e calcule o produto deles sem usar o operador de multiplicação, apenas somas. Vamos usar conceitos de laços (loops) e tratamento de sinal para lidar com números negativos.
Passo 2
Primeiro, precisamos pensar em como fazer uma “multiplicação” apenas somando. A ideia é somar um dos números (chamado multiplicando) repetidamente, tantas vezes quanto o valor absoluto do outro (chamado multiplicador).
Como podem surgir sinais negativos, extraímos o sinal do resultado: Se os dois números tiverem sinais iguais, o produto é positivo; caso contrário, é negativo. Para isso, guardamos o sinal final em uma variável (1 ou -1) e trabalhamos com valores absolutos.
Como podem surgir sinais negativos, extraímos o sinal do resultado: Se os dois números tiverem sinais iguais, o produto é positivo; caso contrário, é negativo. Para isso, guardamos o sinal final em uma variável (1 ou -1) e trabalhamos com valores absolutos.
Passo 3
Em seguida, inicializamos uma variável resultado em 0 e usamos um loop que vai de 1 até o valor absoluto do multiplicador. A cada iteração, adicionamos o valor absoluto do multiplicando ao resultado.
Passo 4
Ao final do loop, aplicamos o sinal guardado (multiplicando o resultado por 1 ou -1) e então exibimos o valor obtido.
O algoritmo resultante tem complexidade O(|multiplicador|) e cobre todos os casos (incluindo zero e negativos).
O algoritmo resultante tem complexidade O(|multiplicador|) e cobre todos os casos (incluindo zero e negativos).
Resposta
Programa em Python
Lê dois números inteiros e calcula o produto apenas com somas
a = int(input("Digite o primeiro inteiro: "))
b = int(input("Digite o segundo inteiro: "))
b = int(input("Digite o segundo inteiro: "))
Determina o sinal do resultado
if (a < 0 and b < 0) or (a >= 0 and b >= 0):
sinal = 1
else:
sinal = -1
sinal = 1
else:
sinal = -1
Trabalha com valores absolutos para a lógica de soma repetida
abs_a = abs(a)
abs_b = abs(b)
abs_b = abs(b)
Soma abs_a, abs_b vezes
resultado = 0
for _ in range(abs_b):
resultado += abs_a
for _ in range(abs_b):
resultado += abs_a
Aplica o sinal final
resultado *= sinal
print(“Resultado da multiplicação:”, resultado)