Programa que soma os 100 1ºnúmeros!

12 respostas
GALACTUS

Bom dia galera, então, como eu já disse, eu estou começando a programar em Java e fiz este seguinte programa:
[code]
// Programa que soma os cem primeiros números(1+2+3+4....100) e exibe o resultado

import javax.swing.JOptionPane; // Eu também queria saber o que significa javax eo swing??

public class Soma1a100
{
public static void main(String args[])
{
int n1=2;
int i;

for(i=1;i<=100;i++)
n1=n1+i;

JOptionPane.showMessageDialog(null,"A soma dos cem primeiros números é: "+n1,
"RESULTADO",JOptionPane.PLAIN_MESSAGE);
}
}

O resultado está dando 5052 e queria saber se está certo??

12 Respostas

T

Bom, Gauss disse que a soma dos primeiros 100 números é 5050. Então obviamente há alguma coisa errada. De onde veio o valor “2” que você botou aí no seu programa?

GALACTUS

ae galera desculpa, eu esqueci de abrir code e fechar code, por isso saiu zuado a codificação.

M

Tá errado. Por causa disso:

int n1=2;
GALACTUS

Será que eu tenho que fazer a variável n1 receber zero???

T

Acho que sim. De onde saiu esse valor 2?

M

Exato. Afinal os números começam de 0 e não de 2 :wink:

GALACTUS

Aff, pode crer, a variável n1 tem que receber 0, nóssa como eu sou loki hahahahaha.
valeu galera, eu acabei de testar aqui e funcionou, valeu mesmo, até mais.

GALACTUS

Caramba que ridículo que eu sou hahahaha, facinho facinho o programinha.

M

Sobre o swing que você perguntou:

http://www.guj.com.br/java.tutorial.artigo.38.1.guj

GALACTUS

Então, eu queria sabe o que é javax e também swing??

peczenyj

Que tal chamar n1 de total ?

Geralmente não faz sentido iniciar uma variavel que deva acumular valores com algo diferente de zero, afinal se vc não somou nada o total deveria ser 0.
Sem falar que o nome da variavel pode elucidar muita coisa, n1 não diz nada, vc precisa olhar o codigo e descobrir o que ele faz.

O que vc quer fazer eh:
inicio = 1; // pode ser hard-coded ou 
fim = 100; // vir via parametros, enfim.

total = 0;  // o nosso acumulador

numero = inicio; // inicio
while(numero <= fim){   // condicao
   total = total + numero; // acumulando...
   numero = numero + 1; // incremento
}

O while pode ser transformado em um laço for, sem problemas, mas perceba que assim é facil de entender o procedimento de iteração de um numero para o outro e o procedimento de acumulação.

Se seguir estas ideias o seu codigo sera mais claro no seu propósito ;-)

claudneto

javax = ?
swing = pacote

Criado 19 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 12
Participantes 5