Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <string.h>
- #define MAXS 5000
- using namespace std;
- void roman_num(int);
- int num_roman(char numero_R[500]);
- int main()
- {
- int cases;
- char roman[MAXS];
- int suma=0;
- int I = 0;
- int cas = 1;
- while (cin >> cases,cases != 0)
- {
- for (int i = 0; i < cases; i++)
- {
- cin >> roman;
- suma += num_roman(roman);
- }
- cout << "Case ";
- roman_num(cas);
- cout << ": ";
- roman_num(suma);
- cout << endl;
- cas++;
- suma = 0;
- }
- }
- int num_roman(char numero_R[500])
- {
- int numero_A[500];
- int suma = 0,ix;
- for(ix = 0;ix < 500;ix++)
- numero_A[ix] = 0;
- for (ix = 0;ix < strlen(numero_R);ix++)
- {
- switch(numero_R[ix])
- {
- case 'I': numero_A[ix] = 1; break;
- case 'V': numero_A[ix] = 5; break;
- case 'X': numero_A[ix] = 10; break;
- case 'L': numero_A[ix] = 50; break;
- case 'C': numero_A[ix] = 100; break;
- case 'D': numero_A[ix] = 500; break;
- case 'M': numero_A[ix] = 1000; break;
- default:
- {
- return (-1); break;
- }
- }
- }
- for(ix = 0;ix < strlen(numero_R);ix++)
- {
- if(numero_A[ix] < numero_A[ix+1])
- suma -= numero_A[ix];
- else
- suma += numero_A[ix];
- }
- return (suma);
- }
- void roman_num(int num)
- {
- int entero,res;
- /* Dividimos por 1000 */
- entero = num/1000;
- res = num%1000;
- switch( entero )
- {
- case 1: printf( "M" ); break;
- case 2: printf( "MM" ); break;
- case 3: printf( "MMM" ); break;
- case 4: printf( "MMMM" ); break;
- case 5: printf( "MMMMM" ); break;
- }
- /* Dividimos por 100 */
- entero = res/100;
- res = res%100;
- switch( entero )
- {
- case 1: printf( "C" ); break;
- case 2: printf( "CC" ); break;
- case 3: printf( "CCC" ); break;
- case 4: printf( "CD" ); break;
- case 5: printf( "D" ); break;
- case 6: printf( "DC" ); break;
- case 7: printf( "DCC" ); break;
- case 8: printf( "DCCC" ); break;
- case 9: printf( "CM" ); break;
- }
- /*Dividimos por 10 */
- entero = res/10;
- res=res%10;
- switch( entero )
- {
- case 1: printf( "X" ); break;
- case 2: printf( "XX" ); break;
- case 3: printf( "XXX" ); break;
- case 4: printf( "XL" ); break;
- case 5: printf( "L" ); break;
- case 6: printf( "LX" ); break;
- case 7: printf( "LXX" ); break;
- case 8: printf( "LXXX" ); break;
- case 9: printf( "XC" ); break;
- }
- switch( res )
- {
- case 1: printf( "I" ); break;
- case 2: printf( "II" ); break;
- case 3: printf( "III" ); break;
- case 4: printf( "IV" ); break;
- case 5: printf( "V" ); break;
- case 6: printf( "VI" ); break;
- case 7: printf( "VII" ); break;
- case 8: printf( "VIII" ); break;
- case 9: printf( "IX" ); break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment