InicioCiencia EducacionACM Lattino - Números Romanos

ACM Lattino - Números Romanos

Ciencia Educacion•11/6/2010
Escriba un programa que convierta un entero positivo en un
número romano. Asuma que los números a convertir son
menores a 3500. Las reglas para construir un número
romano son las que siguen.
En el sistema de números romanos, i es el símbolo para 1,
v para 5, x para 10, l para 50, c para 100, d para 500 y m
para 1000. Los símbolos con un valor grande usualmente
aparecen antes que los símbolos de temor valor. El valor de
un número romano es, en general, la suma de los valores
de los símbolos. Por ejemplo, ii es 2, viii es 8. Sin embargo,
si un símbolo de menor valor aparece antes de un símbolo
de mayor valor, el valor de los dos símbolos es la diferencia
de los dos valores. Pro ejemplo, iv es 4, ix es 9, y lix es 59.
Note que no hay cuatro símbolos consecutivos iguales. Por
ejemplo, iv, pero no iiii, es el número 4. Los números
romanos construidos de esta forma pueden no ser únicos.
Por ejemplo, ambos mcmxc y mxm son validos para 1990.
Aunque el número romano generado por su programa no
debe necesariamente ser el más corto, nunca use vv para
10, ll para 100, dd para 1000, o vvv para 15, etc.
Entrada
La entrada consistirá en una serie de líneas, cada línea
conteniendo un entero x. La entrada terminará cuando la
línea tenga un 0.
Salida
Por cada número, imprima el número en decimal y en forma
romana.
Ejemplo de entrada
38
172
4
1990
50
Ejemplo de Salida
3 iii
8 viii
172 clxxii
4 iv
1990 mcmxc
5 v
solucion
#include<stdio.h>
int main(){
int x, i;
int Vn[13]={ 1000, 900, 500, 400,
100, 90, 50, 40,
10, 9, 5, 4, 1 };
char *Vc[13]={"m","cm","d","cd",
"c","xc","l","xl",
"x","ix","v","iv","i"};
while( 1 ){
scanf( "%d", &x );
if( x==0 )
break;
printf( "%-4d ", x);
i = 0;
while( x>0 ){
if( x>=Vn ){
printf( "%s", Vc );
x = x - Vn;
}
else
i++;
}
printf( "n" );
}
return 0;
}
Datos archivados del Taringa! original
0puntos
233visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

k
kailIII🇦🇷
Usuario
Puntos0
Posts1
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.