Es un sistema de numeración que usa letras mayúsculas a las que se ha asignado un valor numérico.Numeración romana:
Este tipo de numeración debe utilizarse lo menos posible, sobre todo por las dificultades de lectura y escritura que presenta.
Se usa principalmente:
- En los números de capítulos y tomos de una obra.
- En los actos y escenas de una obra de teatro.
- En los nombres de papas, reyes y emperadores.
- En la designación de congresos, olimpiadas, asambleas, certámenes...
La numeración romana utiliza siete letras mayúsculas a las que corresponden los siguientes valores:Reglas:
Letras | I | V | X | L | C | D | M |
Valores | 1 | 5 | 10 | 50 | 100 | 500 | 1.000 |
Esta vez hice un programa sencillo donde el usuario ingresa un numero decimal y se devuelve el resultado en números romanos,
Ejemplo:
#include <iostream> #include <cstring> #include <sstream> using namespace std; string convertir(int n){ string cadena = ""; while(n>=1000){ cadena+="M"; n-=1000; } if(n>=900){ cadena+="DM"; n-=900; } if(n>=500){ cadena+="D"; n-=500; } if(n>=400){ cadena+="CD"; n-=400; } while(n>=100){ cadena+="C"; n-=100; } if(n>=90){ cadena+="XC"; n-=90; } if(n>=50){ cadena+="L"; n-=50; } if(n>=40){ cadena+="XL"; n-=40; } while(n>=10){ cadena+="X"; n-=10; } if(n>=9){ cadena+="IX"; n-=9; } if(n>=5){ cadena+="V"; n-=5; } if(n>=4){ cadena+="IV"; n-=4; } while(n>=1){ cadena+="I"; n-=1; } return cadena; } string romanos(string numero){ int n = atoi(numero.c_str()); numero = convertir(n); return numero; } int main(){ string numero; cout << "Ingresa el numero decimal: "; getline(cin,numero); numero = romanos(numero); cout << "El numero en Romanos es: " << numero; cin.get(); return 0; }Este programa no tiene mucho alcance, pero puede ser de ayuda para hacer uno mejor y mas complejo.
Les dejo una pagina con mas información donde pueden convertir los números de manera automática:
http://www.periodni.com/es/convertidor_numeros_romanos.html
Un favor necesito un programa que me permita ingresar números entre 1 y 100 y me muestre el equivalente en romanos saludos....
ResponderEliminarpues este programa te sirve, lo difícil ya esta hecho, ahora haz uno que en vez de que te pida una sola vez, que te lo pida 100 veces con un for y listo.
EliminarEn este if:
ResponderEliminarif(n>=900){
cadena+="DM";
n-=900;
}
la linea cadena+="DM"; debe ser cadena+="CM";
creo sale mas fácil con switch, lo estoy programando, ahora lo paso
ResponderEliminar