Letra del Documento Nacional de Identidad Español
Hace unos pocos días me preguntaban que si sabía como iba eso de las letras del DNI.
La verdad es que saberme la secuencia de las letras no me la sabía (evidentemente) , pero si supe contarle como va que como muchos sabréis es muy simple, lo podemos encontrar perfectamente en los wikibooks y el algoritmo escrito en diferentes lenguajes de programación pinchar AQUÍ si lo queréis ver.
Tener en cuenta que el código de wikibooks el DNI se le debe pasar al programa como argumento.
La tabla de asignación es la siguiente
| 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 |
Desconozco cual es el motivo de esta colocación tan especial, si alguien lo sabe que lo deje en los comentarios.
Y os dejo el código escrito en ‘C’ hecho por mi. para compilarlo en linux tenéis que tener instalado el gcc, podéis instalar estas utilidades con el siguiente comando :
sudo aptitude install build-essential
y el código es
/* ################################### */
#include <stdio.h>
int main (void)
{
int dni, resto;
char letra[]= “TRWAGMYFPDXBNJZSQVHLCKE”;
printf(”ESCRIBA SU DNI \n”);
scanf(”%d”,&dni);
resto = dni % 23;
printf(”SU LETRA ES %c\n”,letra[resto]);
}
Este es menos completo que el de wikibooks, ya que no comprueba si la longitud del DNI es valida, pero creo que así se entiende perfectamente. Ya que no es más que calcular el resto de DNI entre 23 y mirar a que letra corresponde ese número comprendido entre 0 y 22.
hmm. strange ))