Soma de 4 digitos calcular se e par ou impar

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

Obrigado pela ajuda!

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