Imprimir a soma de 1 até 1000 [RESOLVIDO]

Como faço para imprimir a soma de 1 até 1000:

1+2+3+4+5…+99+100…

Em Ruby

1000.times {|v| puts v}

Em Java: use o laço FOR

Para somar números consecutivos, soma-se o primeiro com o último e multiplica-se por métade dos números a somar

int min = 1;
int max = 1000;

int soma = (min + max) * ((max - min + 1) / 2)
2 curtidas

Exato.

Nada mais, nada menos que a famosa soma dos termos de uma progressão aritmética.
Matéria do segundo grau.

Agora, se vc quer imprimir efetivamente a continha, aí sim, use o laço for.

O que estou procurando é =ou- isto aqui:

public static void main (String [] args)
{
for (int x = 0, y = 0; x <= 1000; y++){
x = x + y;
System.out.println(x);
}
}

E por que não é exatamente isso aí?

int resultado = 0; for (int x = 1; x <= 1000; x++) resultado += x;

O sistema teria que imprimir:

0=0+0
1=0+1
3=1+2
6=3+3
10=6+4
15=10+5
até
…=…+1000

uma soma acumulada.

int resultado = 0; int ultimoValor; for (int x = 0; x <= 1000; x++) { ultimoValor = resultado; resultado += x; System.out.printf("%d = %d + %d\n", resultado, ultimoValor, x); } // for

1 curtida

Obrigado pessoal!

Vixii, acho que vou ser péssima.
Tive um raciocinio quase parecido com o ultimo, mas nem lembrei da pg!
Aff Odeio matématica!
Estou perdida sem saber como pensar :S :cry:

A idéia de utilizar a PA é infinitamente mais eficiente do que percorrer todos os números e sair somando cada um.

E se a soma fosse ate 1.000.000? Pense nisso.
Usa a fórmula da PA que o cara colocou e seja feliz,

Abraços,

Fiquei perdida é PG ou PA?

oi rafaela,

Progressao Aritmetica = Somatório.
Progressão Geométrica = Produtório.

:wink:

Hum agora sim entendi valeu pessoal do GUJ

Eu tentei assim, e deu certo…

public class SomaUmMil {

public static void main(String[]args){

	int inicio=1;
	double fim=1000;
	double operacao = (inicio + fim) * (fim/2);
	int resultado = (int)operacao;

	System.out.println(resultado);
}

}

int x = 123; int y = 331; int maX = max(x, y); int miN = min(x, y); int ans = (((maX * (maX + 1))) - ((miN * (miN - 1)))) / 2;

Qualquer range que a diferenca >= 0 em O(1).

Por que o resultado deu 500500 ???
Não era pra imprimir a soma??? Tipo 1+1=2 2+3… Algo assim?
Alguém pode me explicar??? Sou leigona em entender problemas assim…? :frowning:

Estou estudando pela apostila do Caelum e tentando fazer os exercícios, quero muito ser programadora Java.
Mas tenho dificuldades em entender enunciado.
E por favor tenha paciência comigo rsrs
Obrigada.

Abraços!

Depende. Se você quer imprimir o resultado da soma, ou o cálculo também.
Isso vai depender de como o enunciado está escrito.

Se for imprimir o cálculo, terá que usar o for. Se não for, pode usar a soma dos termos da PA, que é bem mais eficiente.

[b][color=green]Bom dia pessoal.

Putz, tentei os códigos por aqui e no meu pc tb aparece 500500.
tentei usar o laço for : for (int x = 1; x <=1000; x++) e tb nao rolou, será q é problema do meu NotePad++ ou algum vacilo no código?
Estou com a apostila da Caelum e estudando sozinho, algum help?
Vlw[/color][/b]