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

Fatorial de um número

Bom diaaaa!!!

Pessoal , sobre fatorial alguém pode falar um pouco mais sobre.... entendi a parte de como o descobrimos, mas a fórmula de como acha n.

8 respostas

Eu vou ser sincero e confessar que preciso rever minha matemática, mas eu bolei um trechinho de código humilde que talvez te ajude aqui:

int resultado = 1;
        for (int i = 1; i<=10; i++) {

        resultado *= i;
        if (i < 10) {
            System.out.print(i + "x");
        } else {
            System.out.print(i + " = ");
        }
    }
    System.out.print(resultado);

É um loop usando for. Ele pega um valor de fora do loop, para que ele não seja redefinido toda vez que passar dentro do loop e faz a conta multiplicando pelo contador i. Então toda vez que ele passa, incrementa e multiplica o valor guardado na variável resultado.

Testa aí e me diz se ajudou a entender melhor. É claro, provavelmente dá pra melhorar isso aí.

Boa tarde Lucas!!!!

A minha dificuldade era como colocar a fórmula do fatorial dentro do for. N o exercício só pedia o fatorial de 10. Prq vc colocou fora outro //system.ou.print(resultado); // ???

public static void main(String[] args) {
    int fatorial = 1;

    for (int n = 1; n < 11 ; n ++) {
        fatorial *= n;

        System.out.println("Fatorial de" + n + "=" + fatorial);
    }
}

Oi gente, sobre o fatorial, ele é uma operação matemática que faz multiplicações sucessivas dos antecessores de um número até o 1, ou seja, fatorial de 5 é indicado por 5! = 5 * 4 * 3 * 2 * 1. Eu não lembro se tinha alguma condição específica no desafio porque fiz a algum tempo, mas fiz um código que calcula o fatorial de 10.

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

        int fatorial = 1;

        for (int i = 10; i>=1 ; i--) {
            fatorial *= i;
        }

        System.out.println("10! = " + fatorial);
    }
}
solução!

Bom dia Ludymila!

A minha ideia, quando escrevi esse trecho de código, foi deixar o loop apenas para incrementar o valor. Depois de ele fazer todo o trabalho de calcular, ele exibe o resultado.

Quando vc deixa ele imprimindo o resultado dentro do loop, ele imprime toda vez que faz a iteração. Não tá errado, é só outro jeito de fazer a mesma coisa. Se você quer ver o resultado incrementando, deixa dentro do loop. Se quer apenas o resultado final, fora do loop é um bom lugar.

Fui longe nessa lógica, escrevi muito código. Mas funcionou.

public class TestaFatorial {

    public static void main(String[] args) {

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

            int total = n;
            System.out.print("O fatorial de " + n + "!=");

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

                total *= (n-fatorial);
                System.out.print(fatorial + "x");
            }
            System.out.println(n + "=" + total);
        }
    }
}

Bom dia!!!

Obrigada pela explicação Lucas e Alessandro pelo código!!!

Boa noite,

Fui um pouco mais longe para explorar mais a tecnologia e o aprendizado.

Segue meu código.

import java.util.ArrayList;

public class Fatorial {
    public static void main(String[] args) {
        int fator = 30;
        long contador = 1L;

        String regex = "[, ]";
        ArrayList<String> list = new ArrayList<String>();

        for (int i = 1; i <= fator; i++) {

            contador = contador * i;

            list.add("" + i + "x");
        }

        String stringFator = list.toString().substring(1, list.toString().length() - 2).replaceAll(regex, "");

        System.out.println("O fator de " + fator + " é igual a " + stringFator + " = " + contador + "");
    }

}

Resultado Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Opa pessoal

Muito bom! Parabéns a todos pelo empenho nos estudos!

Continuem praticando e qualquer dúvida pode contar com a gente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software