Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Fatorial de uma outra forma

Bom dia. Tudo bem?

Em relação ao exercício de fatorial, não conseguir chegar ao mesmo código do exemplo, mas fiz da seguinte forma

public class Fatorial{
  public static void main(String[] args){

    int fatorial = 1;

    for(int n = 1; n <= 10; n ++){

      fatorial = n;

      for(int fat = (n - 1); fat >= 1; fat --){

        if(fat == 0){

          fat = 1;

        }

        fatorial = fatorial * fat;
      }

      System.out.println("Fatorial do número (" + n + ") é igual a " + fatorial);
    }
  }
}

A princípio não tinha entendido o código do exemplo mas depois, analisando com mais calma, conseguir entender. Em relação a este código, tem algum problema de seguir a lógica um pouco diferente?

4 respostas

Olá, por mais rígido que o java seja, dá para chegar em mais de uma maneira lógica no mesmo resultado. O meu código por exemplo ficou mais similar ao seu do que ao exemplo também:

int multiplicador;

for(int n = 1; n <= 10; n++) {
    multiplicador = 1;

    for (int fatorial = n; fatorial >=1 ; fatorial--) {
        if (fatorial > 1) {
            System.out.print(fatorial + "x");
            multiplicador = multiplicador * fatorial;
        }else {
            System.out.print(fatorial + " = ");
            System.out.println(multiplicador);
        }
    }
}

Olá Pessoal,

Segue uma maneira um pouco diferente de fazer um método para o cálculo do Fatorial.

import java.util.Scanner;

public class Fatorial {

    public static int fatorial(int num) {

        if (num <= 1) {

            return 1;

        } else {

            return fatorial(num - 1) * num;

        }

    }

    public static void main(String[] args) {


        int numero;

        Scanner entrada = new Scanner(System.in);


        System.out.println("Digite o número que você pretende obter o fatorial.");


        numero = entrada.nextInt();


        System.out.println("O fatorial de " + numero + " é " + fatorial(numero) + ".");


    }
}
solução!

Olá pessoal, beleza?

É sempre bom variar o meio de implementar a solução de problemas lógicos. Parabéns pela iniciativa de vocês :)

Poderiam me explicar o código do Henrique? Queria saber como funciona o public static int fatorial(int num) É um loop? Obrigado!

import java.util.Scanner;

public class Fatorial {

    public static int fatorial(int num) {

        if (num <= 1) {

            return 1;

        } else {

            return fatorial(num - 1) * num;

        }

    }

    public static void main(String[] args) {


        int numero;

        Scanner entrada = new Scanner(System.in);


        System.out.println("Digite o número que você pretende obter o fatorial.");


        numero = entrada.nextInt();


        System.out.println("O fatorial de " + numero + " é " + fatorial(numero) + ".");


    }
}