1
resposta

Desafio - Inventei moda e demorei um pouco

Decidi imprimir cada etapa do processo de cálculo para o fatorial mas saiu. Se tiverem sugestões de como melhorar esse código, fiquem à vontade.

import java.util.Scanner;

public class Desafio3 {
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        positivoOuNegativo();
        comparandoNumeros();
        quadradouOuCirculo();
        tabuada();
        imparOuPar();
        fatorial();
    }

    private static void fatorial() {
        System.out.println("Insira o número que deseja o fatorial: ");
        int fatorial = scanner.nextInt();
        int resultado = 0;

        while (fatorial > 1) {
            int fatorialMenosUm = fatorial - 1;

            if (resultado == 0) {
                resultado = fatorial * fatorialMenosUm;
                System.out.printf("""
                        %d x %d = %d
                        """, fatorial, fatorialMenosUm, resultado);
            } else {
                int guardaResultado = resultado;
                resultado *= fatorialMenosUm;
                System.out.printf("""
                        %d x %d = %d
                        """, guardaResultado, fatorialMenosUm, resultado);
            }
            fatorial--;
        }
    }

    private static void imparOuPar() {
        System.out.println("Digite um número e descubra se ele é par ou ímpar: ");
        int numeroEscolhido = scanner.nextInt();
        if (numeroEscolhido % 2 != 0) {
            System.out.printf("""
                    O número %d é ímpar
                    """, numeroEscolhido);
        } else {
            System.out.printf("""
                    O número %d é par
                    """, numeroEscolhido);
        }

    }

    private static void tabuada() {
        System.out.println("A tabuada de qual número deseja calcular?");
        int numeroEscolhido = scanner.nextInt();
        for (int i = 0; i < 11; i++) {
            System.out.printf("""
                    %d x %d = %d
                    """, numeroEscolhido, i, numeroEscolhido * i);
        }
    }

    private static void quadradouOuCirculo() {
        boolean opcaoSaida = false;
        while (!opcaoSaida) {
            System.out.println("""
                    Selecione uma das opções de calculo:
                    1. Calcular área do quadrado
                    2. Calcular área do círculo
                    Para sair -1
                    """);
            int opcao = scanner.nextInt();
            System.out.println("opção escolhida: " + opcao);
            if (opcao == 1) {
                System.out.println("Qual o tamanho do lado do seu quadrado?");
                double ladoQuadrado = scanner.nextDouble();
                System.out.printf("""
                        A área do seu quadrado é: %.2f
                        %n""", (ladoQuadrado * ladoQuadrado));
            } else if (opcao == 2) {
                System.out.println("Qual o raio do seu circulo?");
                double raio = scanner.nextDouble();
                double pi = 3.14;
                System.out.printf("""
                        A área do seu circulo é: %.2f
                        %n""", (pi * (raio * raio)));
            } else if (opcao == -1) {
                opcaoSaida = true;
            } else {
                System.out.println("Digite uma opção válida!");
            }
        }
    }

    private static void comparandoNumeros() {
        System.out.println("Digite o primeiro número da comparação: ");
        int a = scanner.nextInt();
        System.out.println("Digite o segundo número para compararmos: ");
        int b = scanner.nextInt();

        if (a > b) {
            System.out.printf("""
                    %d diferente e maior que %d
                    %n""", a, b);
        } else if (a < b) {
            System.out.printf("""
                    %d diferente e menor que %d
                    %n""", a, b);
        } else {
            System.out.printf("""
                    %d e %d são iguais
                    %n""", a, b);
        }
    }

    private static void positivoOuNegativo() {
        System.out.println("Digite o número e descubra se ele é positivo ou negativo");
        int numero = scanner.nextInt();

        if (numero > 0) {
            System.out.printf("""
                    Número positivo: %d
                    %n""", numero);
        } else {
            System.out.printf("""
                    Número negativo: %d
                    %n""", numero);
        }
    }
}
1 resposta

Oi, Roger! Como vai?

Obrigada por compartilhar seu código.

Gostei de como você detalhou o cálculo do fatorial, mostrando cada etapa intermediária. Isso ajuda bastante na compreensão do processo.

Parabéns por ir além! Continue assim.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!