Multiplication Algorithm by sum to any integer

1

I have to develop a multiplication algorithm by adding to any integer in the most optimized way possible.

I thought of the following: x*y=z;x,y belongs to integers, so z=x+x y times. I know almost nothing about programming, but I managed to get on those lines:

n1 = int(input('Digite um número'))
n2= int(input('Digite um número'))
multiplicação = (n1 + n1) range (n2)
print("A multiplicação de", n1, "(n1 + n1) range (n", n2, "eh igual a", multiplicação)

My problem is that I can not set the multiplication law as n1+n1 n2 times. I need someone to give me a light on this, I just need that definition. The calculation should still be done in the most optimized way possible eg:

5.2=5+5

no:

5.2=2+2+2+2+2

If anyone has any idea of this also I would be extremely grateful.

    
asked by anonymous 06.05.2018 / 22:51

1 answer

1

My other answer already answers this, just do a check to know which value is greater:

n1 = int(input('Digite um número'))

n2 = int(input('Digite um número'))

# Cria uma variável que vai receber um valor booleano (true = positivo, false = negativo)
sinal = True

# Verifica se um dos números é negativo, se for muda o valor de sinal para false (negativo)
if (n1 < 0) != (n2 < 0):
    sinal = False

# Muda o sinal de n1 para positivo se ele for negativo
if n1 < 0:
    n1 *= -1

# Muda o sinal de n2 para positivo se ele for negativo
if n2 < 0:
    n2 *= -1

resultado = 0

if n1 > n2:
    for i in range(n2):
        resultado += n1
else:
    for i in range(n1):
        resultado += n2

# Se o sinal for false transforma o resultado para negativo
if sinal == False:
    resultado *= -1

print("A multiplicação de", n1, "(n1 + n1) range (n", n2, "eh igual a", resultado)

An expression n *= -1 is the same as n = n * -1

    
06.05.2018 / 23:43