Tente Tente tente, mas não consegui.!

Pessoal acredito que eu não tenha explicado direito o que eu quero fazer mas não estou conseguindo, então vou detalhar aqui o meu grande problema nesse programa.

Bem Primeiro vou por o codigo do programa aqui :

import javax.swing.JOptionPane;

public class Eleva{

public static void main( String args[])
{

String Entrada,soma,result;
int n1,n2,n3=0,n4=0;

  [color="red"]//entro com um numero [/color]
  Entrada=JOptionPane.showInputDialog("Entre com um numero : ");
  n1=Integer.parseInt(Entrada);

   [color="red"]//Esse numero é elevado a ele mesmo .[/color]
   n2=(int)Math.pow(n1,n1);
  
  [color="red"]//converto o result de n2 que é um inteiro para umaString[/color] 
  [color="red"]//chamada "soma"[/color]
  soma=String.valueOf(n2);

 [color="red"]//com esse for eu pego os caracteres dessa String e somo um a um [/color] 
 for(int i=0;i<soma.length();i++)
     {
      n3+=Integer.parseInt(soma.charAt(i)+"");
     }

    
      [color="red"]//Agora eu divido o resultada da soma pelo primeiro numero onde [/color]
      [color="red"]//onde foi dada a entrada[/color]
      n4=n3/n1;
     


    [color="red"] //aqui criei uma condição, se o valor da divisão for igual ao primeiro[/color]
     [color="red"]//numero digitado será mostrado o valor[/color]
     if(n4==n1)
        result=""+n4;
   
    else
        result="--";

     System.out.println(result);

System.exit(0);

}
}

Bom com eu já estou com essa dúvida e postei aqui anteriormente, e persebi que ninguém entendeu o que eu queria vou tentar explicar de uma forma mais simples.

Esse codigo de programa ai em cima está funcionando perfeitamente, vou dar um exemplo:

[color=“blue”]Ex: Eu entro com um numero, neste caso vou usar o numero 3 de exemplo, então vai ficar assim : Entrada =3 , usando a classe Math e a função pow, eu elevo esse numero “3” a ele mesmo,: [/color] [color=“red”] n2=(int)Math.pow(n1,n1);[/color]

o resultado é =27.

[color=“blue”]Agora eu converto esse resultado que é um inteiro em uma String :[/color]
[color=“red”]soma=String.valueOf(n2);[/color]

[color=“blue”]Agora com o “for” eu somo os caracteres dessa String, lembrando que essa String contém o valor 27 :[/color]
[color=“red”] for(int i=0;i<soma.length();i++)
{
n3+=Integer.parseInt(soma.charAt(i)+"");
}[/color]

O resultado é =9.

[color=“blue”]Agora eu faço a divisão e a condição:[/color]
n4=n3/n1;

    if(n4==n1)
        result=""+n4;
   
    else
        result="--";

[color=“blue”]o resultado vai ser =3.[/color]

[color=“red”]!!! AGORA VEM O MEU GRANDE PROBLEMA!!!

Como eu faço para automatizar a entradas de dados no programa ?
Eu gostaria que alguém me explica-se com fazer esse programa pegar os numeros automaticamente, ao inves de eu digitar a primeira entrada, no nosso exemplo o numero “3”.
“” Entrada=JOptionPane.showInputDialog(“Entre com um numero : “);
n1=Integer.parseInt(Entrada);””

ao invez de eu digitar numero por numero, gostaria que o programa fize-se isso automaticamente.[/color]

Sou iniciante não sei como fazer, já tentei mas não deu certo .

Espero que todos tenham entendido o que eu quero fazer .

Um Grande Abraço a todos …

ASS: Rodrigo.

Se eu entendi o que você quer, é bem simples… é só trocar a sua entrada do n1 por um for…

Assim (vou usar quote ao invés de code para poder colocar em negrito):

[quote]public class Eleva{

public static void main( String args[])
{

String Entrada,soma,result;
int n1,n2,n3=0,n4=0;

System.out.println(“Os números de 1 a 10 que funcionam:”);

//entro com um numero
//Entrada=JOptionPane.showInputDialog("Entre com um numero : ");
//n1=Integer.parseInt(Entrada);
for(n1=1; n1 < 11; n1++) { // pega os 10 primeiros nos.

//Esse numero é elevado a ele mesmo .
n2=(int)Math.pow(n1,n1);

//converto o result de n2 que é um inteiro para umaString
//chamada “soma”
soma=String.valueOf(n2);

//com esse for eu pego os caracteres dessa String e somo um a um
for(int i=0;i<soma.length();i++)
{
n3+=Integer.parseInt(soma.charAt(i)+"");
}

//Agora eu divido o resultada da soma pelo primeiro numero onde
//onde foi dada a entrada
n4=n3/n1;

//aqui criei uma condição, se o valor da divisão for igual ao primeiro
//numero digitado será mostrado o valor
if(n4==n1)
result=""+n4;

else
result="–";

System.out.println(result);

} // fecha o for do n1

System.exit(0);

}
}[/quote]

Ah, na linha depois de:
soma=String.valueOf(n2);

Coloca:
n3 = 0;

Mas olha só, no 10 já estora a capacidade do int, mesmo usando o long você só vai chegar até o 15 (por causa do 15 elevado a 15 que dá um puta número).

Você teria que usar float ou double, mas tem que tomar cuidado na hora de pegar os charAt pq tem o ponto.

Muito OBRIGADO era isso mesmo que eu queria …

Um Forte Abraço…

Bom dia!
Agora eu fiquei confuso, o que você queria era isso mesmo?!..
Você queria que o programa simplesmente fizesse com que você não precisasse fazer o input dos valores?!, ou você queria que o mesmo gerasse números aleatórios entre 0 a 10, 0 a 15 dependendo do tipo de dado como o JavaDrops falou?!

Por exemplo:

  • Uma hora o programa gera o 5 , outra o 1 , outra o 8…sem uma ordem especifica entendeu!?..
    ao contrario do uso do for que é 1,2,3,4,5,6…e assim vai…

Ve ai!
Falou!

[quote=“dumestico”]Bom dia!
Agora eu fiquei confuso, o que você queria era isso mesmo?!..
Você queria que o programa simplesmente fizesse com que você não precisasse fazer o input dos valores?!, ou você queria que o mesmo gerasse números aleatórios entre 0 a 10, 0 a 15 dependendo do tipo de dado como o JavaDrops falou?!

Por exemplo:

  • Uma hora o programa gera o 5 , outra o 1 , outra o 8…sem uma ordem especifica entendeu!?..
    ao contrario do uso do for que é 1,2,3,4,5,6…e assim vai…

Ve ai!
Falou![/quote]

Amigo acho que você não entendeu o que eu queria, mas já foi resolvido .

você não entedeu , meu programa já estava o.k , mas eu não estava conseguindo fazer um “for” , eu esqueci que simplesmente tinha que gerar a variavel n3.

Caso você não tenha entendido leia com atenção .

Eu li e pra mim é o seguinte!

Isso pode ser feito dessa maneira que você especificou, ou de uma outra maneira utilizando o random que irá gerar esse numero aleatório.

o random atende exatamente isso que você ta pendindo, você não irá precisar fazer a entrada dos dados.

[quote]ao invez de eu digitar numero por numero, gostaria que o programa fize-se isso automaticamente.
[/quote]
Atende a essa também, se colocar um random dentro de um for!

Bom, levando isso em conta, creio que não entendi por você não ter especificado direito qual era sua dúvida. JavaDrops interpretou de uma maneira eu achei que fosse de outra, mas blz…se sua duvida foi banida sem erro…já que esse é o objetivo do portal!

Falou!