Estou com dúvida de como fazer esses programas, tentei mas deu errado

  1. Escreva um programa que receba do usuário um valor e então calcule e exiba a soma de todos
    os números ímpares entre 0 e aquele valor.

  2. Escreva um programa que exiba um menu ao usuário contendo quatro opções:

  1. Fatorial
  2. Soma dos antecessores
  3. Sair
    Em seguida, após receber uma das opções acima, o programa calcula o que for pedido,
    recebendo os números necessários do usuário para executar o cálculo. O programa deve exibir
    novamente o menu após o resultado até que a opção 3 seja escolhida.

Ex. fatorial: 5!
I) 5 * 4 * 3 * 2 * 1.
II) (5 - 0) * (5-1) * (5-2) * (5 - 3) * (5-4), fim da instrução.
III) valor = valor * (valor - 1), com laço de repetição

Ex. Soma anteriores:

    valor = 5
    se (valor % 2 == 0){//se o valor for par reduz para impar
        valor = valor - 1;
    }
    x = valor
    enquando x - 2 > 0{//ao reduzir de dois em dois o valor continua com o estado ímpar
        x = x - 2
        valor += x
}

Estas são dicas de solução, dentre outras disponíveis.

Posta ai o que fez e podemos lhe ajudar indicando o caminho, mas ngm aqui irá fazer sua lição de casa!

Pessoal entra na área e acha que pegar o canudo é o que conta…
Tenta fazer @donkbr e vai nos dizendo suas dificuldades…
Não adianta pedir o exercício inteiro pronto.

Desculpe amigão, não entrei aqui pra pegar nada de resposta fácil não, eu estava sem tempo de responder aqui no site.
Porem consegui fazer as questões.
Segue abaixo o que fiz. ‘-’ Não julguem sem antes saber. vlw

ackage aula.pkg5;
import java.util.Scanner;
public class Aula5 {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.println(“Digite um valor”);
int x;
int valor = teclado.nextInt();
int total = 0;
for ( x = 1; x <= valor; x++){
if ((x % 2 != 0));
total = total + x;
}
System.out.println("A soma dos ímpares é: "+ total);
}

}

package javaapplication62;

import java.util.Scanner;
public class JavaApplication62 {

public static void main(String[] args) {
int a,num;
int i;    
Scanner leitor = new Scanner(System.in);
do{
    do{
    int fat = 1,cont = 1,total = 0;
    
            System.out.println("\tMenu de operações");
            System.out.println("Fatorial ~> [1]");
            System.out.println("Soma dos antecessores ~> [2]");
            System.out.println("Sair ~> [3]");
            a = leitor.nextInt();
            System.out.println("\n\n");
             switch (a){
                            case 1:
                                do {
                                    System.out.println("Digite o valor que deseja verficar o \'fatorial\': ");
                                    num = leitor.nextInt();
                                    for(i = 1; i <= num; i++){
                                        fat = fat*i;
                                        cont++;}
                                    System.out.println("O fatorial de !"+num+" é: "+fat);
                                }while (cont<2);
                                do{
                                System.out.println("Voltar ~> [1]");
                                a = leitor.nextInt();
                                if(a!=1){
                                    System.out.println("Opção Inválida.\n\n");}
                                }while(a!=1);
                                break;
                            case 2:
                                System.out.println("Digite um valor que deseja realizar a operação:");
                                num = leitor.nextInt();
                                cont = num;
                                while(cont>0){
                                    total = total+cont;
                                    cont--;
                                }
                                System.out.println("A soma dos antecessores de "+num+" é: "+total);
                                do{
                                System.out.println("Voltar ~> [1]");
                                a = leitor.nextInt();
                                if(a!=1){
                                    System.out.println("Opção Inválida.\n\n");}
                                }while(a!=1);
                                
                            case 3:
                                if(a<1||a>3){
                                System.out.println("Opção Inválida.\n\n");}
                                break;
                                

                                }
        }while(a==1);
    }while (a!=3);
    System.out.println("Finalizado.");
    }
}
}

}

Tente utilizar métodos com retorno, as vezes sem retorno(void), pois o código fica mais fácil de ser lido em partes, provendo um reaproveitamento da codificação.

Ex.:

public class Main {

    public static void main(String[] args) {
        int fator = 7, soma = -fator;
        System.out.println(fator + "! (fatorial) = " +fatorial(fator) + "\nSoma dos impares = " + somaDosImpares(soma));
        //reaproveitando
        System.out.println("\nREAPROVEITADO: "+0 + "! (fatorial) = " +fatorial(0) + "\nSoma dos impares = " + somaDosImpares(0));
    }

    private static long fatorial(int numero) {
        if (numero < 0) {
            throw new IllegalArgumentException("Numero não natural -> "+numero);
        }
        long produto = 1;
        for (int fator = 2; fator < numero; fator++) {
            produto *= fator;
        }
        return produto;
    }

    private static int somaDosImpares(int numero) {
        boolean menos = numero < 0;        
        if (numero % 2 == 0 && numero != 0) {
            numero = menos ? ++numero : --numero;
        }
        int soma = (numero = Math.abs(numero));

        while ((numero = numero - 2) > 0) {
            soma += numero;           
        }
        return menos ? -soma : soma;
    }

Obrigado amigo, vou tentar fazer assim. :slight_smile: