给定一个整数 numnumnum,将整数转换成罗马数字。
如 1,2,3,4,51,2,3,4,51,2,3,4,5 对应的罗马数字分别为I
,II
,III
,IV
,V
等。
输入格式
第一行输入一个整数 num(1≤num≤3999)num(1 \leq num \leq 3999)num(1≤num≤3999)。
输出格式
输出 numnumnum 对应的罗马数字。
样例输入
123
样例输出
CXXIII
代码如下:
#include<stdio.h>
int main()
{
int num;
int a, b, c, d;
scanf("%d", &num);
a = num / 1000;//千位
b = (num % 1000)/100;//百位
c = (num % 100)/10;//十位
d = num % 10;//个位
//千位
while (a != 0)
{
printf("M");
a--;
}
//百位
if (b == 0){ ; }
else if (b == 4)
{
printf("CD");
}
else if (b == 9)
{
printf("CM");
}
else
{
if (b < 4)
{
for (int i = 0; i < b; i++)
{
printf("C");
}
}
else
{
printf("D");
for (int i = 5; i < b; i++)
{
printf("C");
}
}
}
//十位
if (c == 0){ ; }
else if (c == 4)
{
printf("XL");
}
else if (c == 9)
{
printf("XC");
}
else
{
if (c < 4)
{
for (int i = 0; i < c; i++)
{
printf("X");
}
}
else
{
printf("L");
for (int i = 5; i < c; i++)
{
printf("X");
}
}
}
//个位
if (d == 0){ ; }
else if (d == 4)
{
printf("IV");
}
else if (d == 9)
{
printf("IX");
}
else
{
if (d < 4)
{
for (int i = 0; i < d; i++)
{
printf("I");
}
}
else
{
printf("V");
for (int i = 5; i < d; i++)
{
printf("I");
}
}
}
return 0;
}