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);
}
}
}