Boa tarde, hoje tenho exame e precisava da vossa ajuda:
“Um método de criação de números para cartões consiste em acrescentar um dígito ao número original de modo a que a soma dos dígitos do novo número seja um número par. Para isso acrescenta um ‘0’ ou um ‘1’ à direita do número original, conforme necessário.*
*Admitindo que os números originais têm todos 4 dígitos, construa um programa que permita aplicar este método.”
A ideia e usar if e else…
Obrigado pela vossa ajuda
if ( (d1 + d2 + d3 + d4) % 2 == 0 ) {
// É par
} else {
// É ímpar
}
2 curtidas
Obrigado, podera me passar o codigo todo?
estou tendo problemas com:
public static void main(String[] args) {
/* Um método de criação de números para cartões consiste em acrescentar um dígito ao número original de
modo a que a soma dos dígitos do novo número seja um número par. Para isso acrescenta um ‘0’ ou um ‘1’ à
direita do número original, conforme necessário.
Admitindo que os números originais têm todos 4 dígitos, construa um programa que permita aplicar este
método.
Aluno: Antonio Miguel Amaro
*/
Scanner sc = new Scanner(System.in);
System.out.print("Digite um numero inteiro com 4 digitos: ");
int variavel= sc.nextInt();
if ( (d1 + d2 + d3 + d4) % 2 == 0 ) {
System.out.println("Proximo numero cartao soma Par = " + variavel + 0);
} else {
System.out.println("Proximo numero cartao soma Par = " + variavel + 1);
}
sc.close();
}
}
1 curtida
Não fiz o código todo, somente parti do principio que você já tinha os 4 dígitos e queria saber se a soma deles é par ou ímpar.
Sim, e com o codigo todo nao consigo…qual sera o problema?
Obrigado
O problema é que você precisa extrair os 4 dígitos do número digitado.
Você não fez isso em lugar nenhum, você só colou o código que te passei, no meio do seu código existente, isso não vai funcionar.
Voce tem isso aqui:
System.out.print(Digite um numero inteiro com 4 digitos: );
int variavel= sc.nextInt();
Agora você precisa manipular a variável que você chamou de variavel
e obter os 4 digitos dela, existem “N” maneiras de fazer isso, pode ir dividindo o número por 10 e ir guardando o resto, pode transformar em String e pegar cada caractere individualmente, seja criativo.
1 curtida
Ja consegui fazer a soma, mas agora preciso de fazer o print do numero introduzido…, aparece zero…
Podera me dar uma ajuda?
Scanner sc = new Scanner(System.in);
System.out.print("Introduza o numero: ");
int number=0, digit = 0, sum = 0;
number = sc.nextInt();
while(number > 0)
{
digit = number % 10;
sum = sum + digit;
number = number / 10;
}
if(sum % 2 == 0)
System.out.println("Soma dos digitos e um numero par" + number);
else
System.out.println("Soma dos digitos e um numero impar" + number);
sc.close();
}
}
Sim, aparece zero pois você foi dividindo ele por 10 até zerar, utilize mais uma variável, uma para apresentar e outra para ir dividindo:
Scanner sc = new Scanner(System.in);
System.out.print("Introduza o numero: ");
int sum = 0;
int digitado = Integer.parseInt(sc.nextLine());
int number = digitado;
while (number > 0) {
int digit = number % 10;
sum = sum + digit;
number = number / 10;
}
if (sum % 2 == 0) {
System.out.println("Soma dos digitos e um numero par " + digitado);
} else {
System.out.println("Soma dos digitos e um numero impar " + digitado);
}
1 curtida
Funcionou!! agora entendi! muito obrigado e um bom ano pra vc!
1 curtida