Dev - C++ - Implementar un programa en C++ que permita ingresar un número de Registro Único de Contribuyente

 
Vista:
Imágen de perfil de cesar
Val: 6
Ha disminuido su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Implementar un programa en C++ que permita ingresar un número de Registro Único de Contribuyente

Publicado por cesar (1 intervención) el 24/08/2020 05:08:04
Estructura iterativa
Manejo de cadena de caracteres.

Implementar un programa en C++ que permita ingresar un número de Registro Único de Contribuyente (RUC) e indicar si es válido o no. Después de mostrar el resultado, el programa debe preguntar si el usuario desea ingresar otro número de RUC o salir.

Indicaciones:
El RUC tiene once dígitos, de los cuales los dos primeros dígitos identifican el tipo
de contribuyente que es 10 (Persona natural) y 20 (Persona Jurídica), también es
válido con 15 y 17 para otros contribuyentes.
El ultimo dígito es un dígito de validación para poder determinar si el número de
RUC es correcto o no. El cálculo es de la siguiente manera:
Siendo Px = posición de los 10 primeros dígitos (del 0 al 9):
SUMA = (P0 x 5)+(P1 x 4)+(P2 x 3)+(P3 x 2)+(P4 x 7)+(P5 x 6)+(P6 x 5)+(P7 x4)+(P8 x 3)+ (P9 x 2)
MODU = SUMA % 11
DIGITOVERIF = 11 – MODU (Si el resultado de la resta es 10 u 11, se usa el último
dígito (10=0, 11=1)
Ejemplo:
Se separan los primeros 10 dígitos (posiciones del 0 al 9), y de acuerdo a su
posición se multiplica por los siguientes factores:
Factor Posición 0 = 5
Factor Posición 1 = 4
Factor Posición 2 = 3
Factor Posición 3 = 2
Factor Posición 4 = 7
Factor Posición 5 = 6
Factor Posición 6 = 5
Factor Posición 7 = 4
Factor Posición 8 = 3
Factor Posición 9 = 2
Luego, sumas las multiplicaciones.
Al resultado, le sacas el residuo de la división por 11.
A 11 le restas el residuo calculado.
El resultado de la resta es el último dígito. Si el resultado de la resta es 10 u 11, se
usa el último dígito (10=0, 11=1).
Por ejemplo:
RUC: 10700968133
Factores:
5*1 = 5
4*0 = 0
3*7 = 21
2*0 = 0
7*0 = 0
6*9 = 54
5*6 = 30
4*8 = 32
3*1 = 3
2*3 = 6
Suma = 151
Luego el Residuo de dividir por 11:
Residuo = 8
Después resta = 11 - 8 = 3.
Como 3<10, ahí terminamos. Si fuera mayor que 10, tomaríamos el último dígito.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder