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.
Escreva um programa que exiba um menu ao usuário contendo quatro opções:
Fatorial
Soma dos antecessores
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.
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;
}