Ejercicio: 1Eva_IIT2006_T2 Dígito verificador de cuenta
Propuesta de solución en Python, otras propuestas : py_pdf, m_pdf
Para números de cuenta con 5 dígitos, se extrae el digito verificador usando el residuo para 10; con el cociente de la división para 10 queda el número de cuenta como se indica en la descripción. Referencia, Operaciones básicas
Código: | 25431 | codigo = 25431 |
verificador escrito: | 1 | escrito = codigo%10 = 2543 % 10 = 1 |
número de cuenta: | 2543 | numero = codigo//10 = 25431 // 10 = 2543 |
se extraen los dígitos del número de posición impar usando también el residuo de 10. Se continua la operación con el siguiente dígito usando la división entera de 10
impar = numero%10 = 2543%10 = 3 numero = numero//10 = 2543//10 = 254
de forma semejante se obtiene el dígito de posición par, usando el residuo de 10.
par = numero%10 =254%10 = 4 numero = numero//10 = 254//10 = 25
Se continúa con las operaciones para los siguientes dígitos, realizando la operación de suma y multiplicación.
Se obtiene el verificador calculado para compararlo con el verificador recibido, estableciendo si la respuesta es afirmativa o negativa.
Opción 1. Usando lazos, es más general para usar mayor cantidad de dígitos
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 1Eva_IIT2006_T2 Dígito verificador de cuenta # INGRESO codigo = int(input('escriba el codigo completo: ')) # PROCEDIMIENTO escrito = codigo%10 numero = codigo//10 multimpar = 1 sumapar = 0 while not(numero <= 0): impar = numero%10 numero = numero//10 multimpar = multimpar*impar par = numero%10 numero = numero//10 sumapar = sumapar+par suma = sumapar + multimpar calculado = suma%10 if (escrito == calculado): respuesta = 1 else: respuesta = 0 # SALIDA print(respuesta)
Ejecución del algoritmo
escriba el codigo completo: 25431 1 >>> escriba el codigo completo: 25432 0 >>>
Opción 2. En caso que requiera repasar más sobre lazos, aún se presenta una solución particular, solo para cuatro dígitos.
# ICM00794-Fundamentos de Computación - FCNM-ESPOL # 1ra Evaluación II Termino 2006 # Tema 2. Verificador cuenta. Ejercicio Básico # INGRESO codigo = int(input('escriba el codigo completo: ')) # PROCEDIMIENTO escrito = codigo%10 numero = codigo//10 a = numero%10 numero = numero//10 b = numero%10 numero = numero//10 c = numero%10 d = numero//10 suma = a*c+(b+d) calculado = suma%10 if (escrito == calculado): respuesta = 1 else: respuesta = 0 # SALIDA print(respuesta)