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);
}
}