Pojeto fatorial

7 respostas
java
Lincolnbiancardi

Bom dia, preciso de uma ajuda com um código que fiz pra fatorar.
Exemplo: Da forma que está na tela se eu fatorar o número 5 ele aparece pra mim:
Realidade:
1x5x4x3x2x1 = 120 (como eu faço pra não aparecer o 1x do começo)

Esperado :
5x4x3x2x1 = 120

segue código que digitei a baixo:

private void spinNumStateChanged(javax.swing.event.ChangeEvent evt) {

// TODO add your handling code here:

int n = (Integer.parseInt(spinNum.getValue().toString()));

int f = 1;

int c = n;

String d = “1”;

while (c >= 1){

d += " x " + c;

f *= c;

c–;

}

lblRes.setText(Integer.toString(f));

lblFat.setText(d);

}

Desde já agradeço!

7 Respostas

darlan_machado

Você pode começar por este trecho, alterando para

String print = ""; // nomes claros às variáveis

Depois, terá de arrumar este trecho

Pois, retirando o “1” do início, ficará

x5x4x3x2x1=

E não é o que você quer.
Logo, terá de colocar uma validação, para certificar-se que não é a primeira iteração.

Rodrigo_Void

Sua String já está começando com “1” e depois vc vai adicionando o “x” mais o número.
Precisa fazer o contrário, começa “” vazio e vai adicionando o número + "x"
Ou começa com o num digitado.

Lincolnbiancardi

Se eu fizer isso fica assim amigo: x5x4x3x2x1=120
Isso que não to sabendo arrumar, pra começar com o 5.

Lincolnbiancardi

Desculpa a ignorância mas é que comecei agora na linguagem, como eu arrumaria a “iteração” que você diz?

Lincolnbiancardi

Se eu fizer isso fica assim amigo:
x5x4x3x2x1=120

Rodrigo_Void

Esqueceste de ler isso q ele falou.

Rodrigo_Void
faz:

String d = n+x;

E no laço faz um if (c!=n)
Criado 13 de junho de 2018
Ultima resposta 13 de jun. de 2018
Respostas 7
Participantes 3