Olá, Adriano.
Tudo bem?
Seu código está quase correto para calcular o fatorial de um número, mas há um pequeno ajuste a ser feito. O problema está na inicialização do loop e na condição de parada. Vamos corrigir isso para que o cálculo do fatorial funcione corretamente.
Aqui está o código ajustado:
import java.util.Scanner;
public class Fatorial {
public static void main(String[] args) {
Scanner leitura = new Scanner(System.in);
int numero;
int resultado = 1;
System.out.println("Digite um número para encontrar seu fatorial: ");
numero = leitura.nextInt();
for (int i = 1; i <= numero; i++) {
resultado *= i;
}
System.out.printf("%d! é igual a: %d", numero, resultado);
}
}
Explicação das mudanças:
- Inicialização do resultado: O
resultado
deve começar com 1, pois qualquer número multiplicado por 0 é 0, o que resultaria em um fatorial incorreto. - Loop: O loop deve começar de 1 e ir até o número inserido (
i <= numero
). Dessa forma, ele multiplicará todos os números de 1 até o número fornecido pelo usuário.
Exemplo prático:
Se o usuário digitar 5, o loop funcionará assim:
- Iteração 1:
resultado = 1 * 1 = 1
- Iteração 2:
resultado = 1 * 2 = 2
- Iteração 3:
resultado = 2 * 3 = 6
- Iteração 4:
resultado = 6 * 4 = 24
- Iteração 5:
resultado = 24 * 5 = 120
Portanto, o fatorial de 5 é 120.
Veja se faz sentido e aplique em seu código.
Espero ter ajudado e bons estudos!