Código fácil

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

int soma = 0;
for (int i = 1; i <= 1000; i++)
      soma += i;

System.out.println(soma);

Blz! :thumbup:

Vlw!!

E se eu pusesse esse cógido daria certo?

double soma=0;

double i=1;
while(i<=1000){

soma=soma+i;

System.out.println(soma);

daria certo tb né?

não

pq vc não tenta implementar, assim parece pergunta de trabalho de faculade…

[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));

Faltou incrementar a variável i.
Nesse seu código está dando Loop infinito.

Ops. Perae, código errado.

eu tentei e deu errado mesmo.

dai coloquei o incremento em i
i=i+1;

dai desse jeito daria certo?

double soma=0;

double i=1;
while(i<=1000){

soma=soma+i;
i = i+1
}// <-- tem q fechar o while

System.out.println(soma);

Compila aew pra ver se funciona homessa. rs…
abraço.

Maravilha!!! agora deu certin.

Muito obrigado gente. E com certeza até a próxima.

Antes de se bitolar no for, que tal usar a forma matemática, como o Sergio fez?

Além de evitar o for, deve ser consideralvemente mais rápida:

int a1 = 1;
int an = 1000;
int n = 1000;

System.out.println((a1+an)*(n/2)); //Formula da PA.

vlw vini.

agora vi que posso é utilizar basicamente as formulas matematicas. assim fica mais facil, pelo menos por enquanto.

Brigadu a todos.

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??

aguardo ajuda…
obrigada

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.

Como você faria na mão (matemática de segundo grau, por favor…)? Poderias tentar fazer isso só que em código.
Ou iterando e somando, você escolhe.

Até!

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;
        }
    }
    
}

isso?

thingol, muitissimo obrigada :slight_smile:

thingol ,muitismo obrigada