Fatorial JAVA

8 respostas
java
naiane

Galera, o q ta comentado é a resolução do prof e ta correta… O negocio é q tive outro raciocínio e não sei extamente pq ta errado…alguma luz por favor?

// Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: //5!=5.4.3.2.1=120

System.out.println("Entre com um numero");
        int num = scan.nextInt();
        
        System.out.println(num + "! = ");
        
       int fatorial=1;
     /*  for (int i=num; i>0 ; i--) {
    	   fatorial*=i;
	        System.out.println(i);

       }*/
         
       
       
       for(int i=1; i<num; i--) {
    	   fatorial=num*(num-1);
       }
        
        System.out.println("Resultado: " + fatorial);

8 Respostas

hugokotsubo

Quando num é 5, você está sempre multiplicando 5 x 4, e faz isso várias vezes sobrescrevendo o valor do fatorial. O certo é acumular o valor da variável, e não sobrescrever.

Além disso, a multiplicação tem que incluir o próprio num, então a condição tem que ser <=. E como o i tem que aumentar de valor a cada iteração, tem que ser i++ em vez de i--.

Ou seja:

int num = // ler o valor do número 
int fatorial = 1;
for (int i = 2; i <= num; i++) {
    fatorial *= i;
}

Ah sim, eu comecei o for em 2, porque não há necessidade de começar em 1 - qualquer número multiplicado por 1 é igual a ele mesmo então é redundante e desnecessário começar do 1.

naiane

Hugo muito obrigada hó… vc realmente esclareceu minha dúvida. é q eu viajo muito no raciocínio e as vezes saio da lógica… preciso manter mais meus pés no chão.

Fefo80

Uma sugestão: sempre tente fazer o caminho mais direto, mais simples. Deu certo? Ok… então você pode perder tempo mexendo em coisas menos importantes.

Com foco você chega longe.

naiane

Muito obrigada pela dica.
Hoje acordei com o pensamento de ser mais objetiva e terminar logo a lista de 35 exercícios de repetição, travo muito no raciocínio, volto, repito um exercício já feito , tentando fazer de outra forma ,talvez eu vá além do que convém, ou talvez minha lógica é ruim mesmo rs!

Fefo80

“Tempo é o tempo que se tem”.

Se você tiver tempo (e saco) para refazer 35 exercícios de 2 ou 3 formas diferentes… ótimo! Senão, simplesmente faça da forma mais eficaz e siga adiante.

E o tempo que você perderia refazendo os exercícios, você investe em aprender conteúdo novo.

O que acha?

naiane

Acho perfeito … e tbm acredito q preciso ser mais segura , no fundo morro de medo de ser reprovada em uma entrevista com algo básico e eu sei q sei sabe?? rs
Obrigada pelas dicas… são importantes demais pra mim! abraços

Fefo80

Assiste isso, vai te ajudar:

Você precisa ao menos saber fazer CRUD nas tecnologias que a vaga pede.

Uma coisa que ajuda é sempre buscar desafios novos, que te forcem a ver as coisas de forma diferente. Se você quiser umas ideias de projetos, me chama no privado.

Fique atenta às postagens aqui, as dicas são cada uma melhor que a outra. Você aprende bastante com as dúvidas dos outros.

E uma outra coisa que ajuda a aprofundar o conhecimento é, quando você tiver mais experiência, vir aqui no fórum e ajudar os novatos.

E sinta-se muito bem vinda ao fórum! Desejo excelente estadia!

naiane

Vídeo sensacional… Obrigada pela generosidade.

Criado 29 de março de 2021
Ultima resposta 29 de mar. de 2021
Respostas 8
Participantes 3