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.”
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
*/
Scannersc=newScanner(System.in);System.out.print("Digite um numero inteiro com 4 digitos: ");intvariavel=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();}
}
S
staroski
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.
M
MiguelAmaro
Sim, e com o codigo todo nao consigo…qual sera o problema?
Obrigado
S
staroski1 like
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.
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.
M
MiguelAmaro
Obrigado pela ajuda!
M
MiguelAmaro
Ja consegui fazer a soma, mas agora preciso de fazer o print do numero introduzido…, aparece zero…
Podera me dar uma ajuda?
Scannersc=newScanner(System.in);System.out.print("Introduza o numero: ");intnumber=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);elseSystem.out.println("Soma dos digitos e um numero impar"+number);sc.close();}}
S
Solucao aceita
staroski1 like
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:
Scannersc=newScanner(System.in);System.out.print("Introduza o numero: ");intsum=0;intdigitado=Integer.parseInt(sc.nextLine());intnumber=digitado;while(number>0){intdigit=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);}
M
MiguelAmaro1 like
Funcionou!! agora entendi! muito obrigado e um bom ano pra vc!