Fatorial JAVA

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

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.

2 curtidas

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.

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.

1 curtida

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!

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

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

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!

1 curtida

Vídeo sensacional… Obrigada pela generosidade.

1 curtida