Conta-se que um professor de Matemática pediu aos alunos de sua turma que somassem todos os números de 1 a 100, como forma de castigo por serem indisciplinados. Grande foi a surpresa desse professor quando, em pouquíssimo tempo, uma das crianças (Carl Friedrich Gauss) levantou-se e lhe entregou uma folha de papel com o resultado correto e uma ideia simples, porém genial.
Trata-se da seguinte lógica:
S = (1+100) + (2+99) + (3+98) + ... + (50+51);
Para cada parcela temos o valor 101. E ao total temos 50 parcelas.
Logo, S = (50 * 101) → S = 5050.
Outra maneira de tratarmos desse problema seria,
S = n(n+1)/2;
Computacionalmente falando...
Levando esse problema para uma linguagem de programação, como Java, teriamos os seguintes trechos de código:
1. Iterando com um laço.
2. Utilizando a soma de Gauss
É notável que o consumo de processamento nos dois casos é muito significativo. Enquanto no exemplo 1 foram
realizadas 100 iterações, o exemplo 2 possui apenas uma instrução.
Friedrich Gauss (1777 - 1855)
Foi um astrônomo, matemática, e físico alemão.