[quote=jb]Boa Tarde Pessoal, estou seguindo uma apostila da Caelum e tem um exercício nela que não estou conseguindo resolver:
imprimir a soma de 1 até 1000.
qual o código que eu poderia usar para fazer essa soma?
Se vocês poderem me ajudar ficarei muito grato.
Té mais[/quote]
public abstract SumUtils {
private SumUtils (){}
public static int sumAll(int ini , int end ){
return end*(end+1)/2 - ini*(ini-1)/2;
}
}
// soma de 1 a 1000
System.out.println(SumUtils.sumAll(1,1000));
Pessoal sou nova no forum …estava tb estudando pela apostila Caelum essa mesma questao
vi que respodi igual ao que ensinaram aqui mas o que vi é q a resposta é a soma de cada numero tipo 1+2, depois 3+3 etc
Gostaria de saber como faço para imprimir somente a soma de todos os numeros até 1000
uma resposta so …será q deu para entender??
Dona Renata, a soma dos números de 1 até N pode ser calculada assim:
public static int somar (int n) {
int total = 0;
for (int i = 1; i <= n; ++i) {
total = total + i;
}
return total;
}
Se você for mais esperta, pode usar a fórmula que Gauss usou quando lhe pediram para fazer esse tipo de soma, que é:
:
public static int somar (int n) {
return n * (n + 1) / 2;
}
(No tempo do Gauss, o professor só queria uma forma de se ver livre dos alunos por algum tempo, e passou como atividade de classe somar os números de 1 até 100. Como Gauss era mais inteligente* que o professor, ele pensou assim:
A soma dos números de 1 a 100 é 1 + 2 + 3 + … + 98 + 99 + 100
Se eu pegar os números dos cantos e ir somando em direção ao meio, você vai ter: 1 + 100 = 101, 2 + 99 = 101 e assim por diante, até chegar a 50 + 51 = 101. O total desses pares de somas é 50, que é 100 / 2.
Então é só multiplicar 50 por 101, que dá 5050.
Mas não mais esperto - se ele fosse esperto, ficava na moita coçando e jogando aviõezinhos de papel no fundo da sala, até que alguém terminasse a tarefa, e então daria a resposta. Mas assim ninguém o teria notado, e ele não estaria na História.
public class LoopDeSoma {
public static void main(String[] args){
int soma = 0;
for (int i = 1; i <= 1000; i++) {
System.out.println(soma+"+"+i+"="+(soma+i));
soma += i;
}
}
}