阿拉伯到罗马

 

罗马数字是欧洲在阿拉伯数字(实际上是印度数字) 传入之前使用的一种数码,现在应用较少。 它的产生晚于中国甲骨文的数码,更晚于埃及人的 十进位数字。但是,它的产生标志着一种古代文明的进步。 给出几个罗马数字的基础数字, I(1),V(5),X(10), L(50),C(100),D(500),M(1000) 观察下面的数字,了解罗马数字的构成原理

1 2 3   4 5  6   7    8  9

I II III IV V VI VII VIII IX

10 20  30   40 50 60 70   80    90

X   XX  XXX XL  L  LX LXX LXXX XC

给出一个大于0小于1000的阿拉伯数字整数,把它转换成罗马数字并输出。

输入要求

一个阿拉伯数字。

输出要求

按样例格式输出输入的阿拉伯数字对应的罗马数字。

输入样例

374
782

输出样例

374=CCCLXXIV
782=DCCLXXXII
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a,b,s,g,i;
    scanf("%d",&a);
    printf("%d=",a);
    b=a/100;
    if(b>=1&&b<=3)
    {
        for(i=1;i<=b;i++)
        {
            printf("C");
        }
    }
    else if(b==4)
    {
        printf("CD");
    }
    else if(b>=5&&b<9)
    {
        printf("D");
        for(i=1;i<=b-5;i++)
            printf("C");
    }
    else if(b==9)
    {
        printf("CM");
    }
    a=a%100;
    s=a/10;
    if(s>=1&&s<=3)
    {
        for(i=1;i<=s;i++)
        {
            printf("X");
        }
    }
    else if(s==4)
    {
        printf("XL");
    }
    else if(s>=5&&s<9)
    {
        printf("L");
        for(i=1;i<=s-5;i++)
            printf("X");
    }
    else if(s==9)
    {
        printf("XC");
    }
    g=a%10;
    if(g>=1&&g<=3)
    {
        for(i=1;i<=g;i++)
        {
            printf("I");
        }
    }
    else if(g==4)
    {
        printf("IV");
    }
    else if(g>=5&&g<9)
    {
        printf("V");
        for(i=1;i<=g-5;i++)
            printf("I");
    }
    else if(g==9)
    {
        printf("IX");
    }
    printf("\n");
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值