1
resposta

Desafio do fatorial

import java.util.Scanner;

public class fatorial {
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        int numero = 0;
        int resultado = 0;

        System.out.println("Digite um número para encontrar seu fatorial: ");
        numero = leitura.nextInt();
        resultado = numero;

        for (int i = 1; i < numero; i++) {
            resultado = resultado * (numero - i);
        }

        System.out.printf("%d! é igual a: %d",numero, resultado);
    }
}
1 resposta

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:

  1. 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.
  2. 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!