public static Integer somatorioNPrimeirosInteiros(Integer n) {
return (n * (n+1)) / 2;
}
Foi só seguir o link de uma das respostas. Evita o loop, é um método matemático.
[quote=guisantogui]Galera pelo amor de Deus!
to precisando mais do que nunca da ajuda de voces!
Preciso fazer um somatório pro seguinte laço de repetição
public int somaMai(int i, tamRua){
int maiores = 0;
for(int g = i; g< tamRua; g++){
maiores += g;
}
return maiores;
Já tentei inumeras formulas, mas nada funciona!
vlw
PS.: postei isso no avançado por engano se algum moderador ler pode tracar lá[/quote]
Cara, é uma PA de razão 1. Pra somar é só fazer:
public int somaMai(int i, int tamRua){
return (i+tamRua)*(tamRua-i+1)/2;
}
Como eu disse, e o Tiago também, é uma PA de razão 1.
Se não estudou isso em matemática ainda, olhe: http://pt.wikipedia.org/wiki/Progressão_aritmética
public int somaMai(int i, int tamRua){
return (tamRua-i)*(tamRua-i+1)/2;
}
Eu tinha feito assim com o sinal de menos, não testei, mas será que essa alteração para mais funciona certinho?
mesmo assim obrigado pela contribuição! Vou testar qdo puder
[quote=guisantogui]
public int somaMai(int i, int tamRua){
return (tamRua-i)*(tamRua-i+1)/2;
}
Eu tinha feito assim com o sinal de menos, não testei, mas será que essa alteração para mais funciona certinho?
mesmo assim obrigado pela contribuição! Vou testar qdo puder[/quote]
A questão é você entender a lógica guisantogui.
A fórmula para somar elementos de uma PA da forma que você propôs é:
Soma = [(a1 + an) * n]/2. Onde a1 é o primeiro elemento; an é o último elemento; e n é o número de elementos. Para uma PA de razão 1, o número de elementos é a diferença entre o an e a1 somado ao valor 1, pois os dois valores (an e a1) são inclusos na somatória.
Gente, não funcionou, mas vou deixar como está!
Obrigado a todos pela ajuda!