1297 阿拉伯到罗马
题目描述
罗马数字是欧洲在阿拉伯数字(实际上是印度数字)
传入之前使用的一种数码,现在应用较少。
它的产生晚于中国甲骨文的数码,更晚于埃及人的
十进位数字。但是,它的产生标志着一种古代文明的进步。
给出几个罗马数字的基础数字,
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>
int main()
{
char *digits[10] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
char *tens[10] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
char *hundreds[10] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
char *thousands[4] = {"", "M", "MM", "MMM"};
int n, i, j;
while(scanf("%d",&n)!=EOF){
printf("%d=", n);
printf("%s", thousands[n/1000]);
printf("%s", hundreds[n%1000/100]);
printf("%s", tens[n%100/10]);
printf("%s
", digits[n%10]);
}
}