Faça uma função que receba dois números inteiros positivos por parâmetro e retorne a soma de todos os números existentes entre eles.
Passo 1
O enunciado pede uma função que receba dois inteiros positivos e retorne a soma de todos os inteiros entre esses valores, incluindo-os. O conteúdo está em lógica de programação e usaremos estruturas de decisão e repetição ou fórmula de progressão aritmética.
Passo 2
Primeiro, para garantir que sempre percorramos do menor para o maior, comparamos os parâmetros. Se o primeiro for maior que o segundo, trocamos seus valores. Assim evitamos resultados errados quando o usuário passar os argumentos na ordem inversa.
Passo 3
Em seguida, podemos calcular a soma de duas maneiras: usando um loop que percorre todos os inteiros de a até b somando-os a um acumulador, ou usando a fórmula da soma dos termos de uma progressão aritmética, que diz que a soma é igual a
onde
.
Passo 4
Por fim, retornamos o valor calculado para quem chamou a função.
Resposta
def soma_intervalo(a, b):
# Garante que a ≤ b trocando se necessário
if a > b:
a, b = b, a
# Calcula quantidade de termos
n = b - a + 1
# Usa fórmula da progressão aritmética
return (a + b) * n // 2
# Garante que a ≤ b trocando se necessário
if a > b:
a, b = b, a
# Calcula quantidade de termos
n = b - a + 1
# Usa fórmula da progressão aritmética
return (a + b) * n // 2