Pages

lunes, 21 de enero de 2013

Convertir a números romanos entre 1000 y 2000 Codigo Fuente en C

Problema
Determinar un algoritmo que permita convertir un número arábigo  comprendido entre  1000 y 2000 a números romanos

Solución
  • Entrada: 1597
  • Salida:  MDXCVII
Codigo Fuente en C
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int N;
    const char *Unidad[]={"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
    const char *Decena[]={"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
    const char *Centena[]={"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
    const char *Mil[] = {"", "M", "MM"};
    printf("Ingrese un numero entre 1000-2000: \n");
    scanf("%d",&N);
    int u=N%10;
      int d=(N/10)%10;
      int c=(N/100)%10;
      int m=N/1000;
      if(N>=1000 && N<=2000){
          printf("%s%s%s%s",Mil[m],Centena[c],Decena[d],Unidad[u]);
      }else{
          printf("Fuera de Rango");
      }
    return 0;
}

0 comentarios:

Publicar un comentario