Olá. Estou tentando resolver um exercício java mas não consigo de forma alguma. Já procurei pela internet mas tudo fica ainda mais confuso. A questão pede para criar um programa em java que imprima as fatoriais de 1 até 10. A questão é a seguinte:
Imprima os fatoriais de 1 a 10. O fatorial de um número n é n * (n-1) * (n-2) * … * 1. Lembre-se de utilizar os parênteses.
O fatorial de 0 é 1
O fatorial de 1 é (0!) * 1 = 1
O fatorial de 2 é (1!) * 2 = 2
O fatorial de 3 é (2!) * 3 = 6
O fatorial de 4 é (3!) * 4 = 24
Faça um for que inicie uma variável n (número) como 1 e fatorial (resultado) como 1 e varia n de 1 até 10:
int fatorial = 1;
for (int n = 1; n <= 10; n++){
}
OBS: Não cosigo fazer este código de forma alguma, consigo no máximo calcular os fatoriais de 1 até 3, desta forma:
int fatorial = 1;
for (int n = 1; n <= 10; n++){
fatorial = n * (n - 1);
}
Veja que quando n passa a ser 4, o cálculo do fatorial não funciona (pois o fatorial de 4 seria: 432*1= 24) e assim sucessivamente com os outros números(5,6,7,8,9,10). Alguém saberia em ajudar de uma forma simples ? Sou novo em java e ainda não aprendi nada sobre métodos, objetos ou funções porisso busco uma solução simples.
Você que calcular o fatorial de 1 a 10, logo vai precisar de um loop para gerar os dados, note que isso só gerar os valores, mas não resolve o fatorial:
for(int i = 1; i<=10; i++){
int num = i; // vamos calcular o fatorial de i;
•••
}
Como você colocou, fatorial de 4 = 4•3•2•1, logo vamos precisar de um loop decrescente que começa no número num -1 e vai até 1, multiplicando nosso valor:
for(int i = 1; i <=10; i++){
int num = i;
for(int j = (num-1); j>=1; j--){
num *= j;
}
//mostra o resultado
System.out.println("Fatorial de "+ i+" = "+num)
}
Era exatamente o que eu precisava, algo simples e fácil de compreender ! Realmente é apenas questão de entendimento, mas estava bem confuso pra mim resolver essa questão. Ajudou muito ! Obrigado
Valeu pela ajuda ! Funcionou perfeitamente, apesar que ainda assim o código pareceu um pouco confuso para mim que sou iniciante em Java. De qualquer forma, Obrigado !!!