E309. Calcular letra de DNI en Java

El DNI consta de un entero de 8 dígitos seguido de una letra que se obtiene a partir del número de la siguiente forma:

 letra = número DNI módulo 23

 Basándote en esta información, elige la letra a partir de la numeración de la siguiente tabla:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

T R W A G M Y F P D  X  B  N  J  Z  S  Q  V  H  L  C  K  E

 y diseña una aplicación en la que, dado un número de DNI, calcule la letra que le corresponde. Observa que un número de 8 dígitos está dentro del rango del tipo int

package U03;

import java.util.Scanner;

/*
 * .  El DNI consta de un entero de 8 dígitos seguido de una letra que se 
 * obtiene a partir del número de la siguiente forma:
 letra = número DNI módulo 23
 Basándote en esta información, elige la letra a partir de la numeración de la siguiente tabla:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
T R W A G M Y F P D  X  B  N  J  Z  S  Q  V  H  L  C  K  E

 */


public class E3_09 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("DNI(solo los números): ");
		int dni = sc.nextInt();
		
		int resto=dni%23;
		
		String letra=switch(resto) {
		case 0-> {yield "T";}
		case 1-> {yield "R";}
		case 2-> {yield "W";}
		case 3-> {yield "A";}
		case 4-> {yield "G";}
		case 5-> {yield "M";}
		case 6-> {yield "Y";}
		case 7-> {yield "F";}
		case 8-> {yield "P";}
		case 9-> {yield "D";}
		case 10-> {yield "X";}
		case 11-> {yield "B";}
		case 12-> {yield "N";}
		case 13-> {yield "J";}
		case 14-> {yield "Z";}
		case 15-> {yield "S";}
		case 16-> {yield "Q";}
		case 17-> {yield "V";}
		case 18-> {yield "H";}
		case 19-> {yield "L";}
		case 20-> {yield "C";}
		case 21-> {yield "K";}
		case 22-> {yield "E";}
		default -> {yield "ERROR";}
		};
		
		System.out.println("DNI: " +dni + letra);
	}
}

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *