给定一个整数 numnum,将整数转换成罗马数字。
如 1,2,3,4,51,2,3,4,51,2,3,4,5 对应的罗马数字分别为I
,II
,III
,IV
,V
等,更详细的说明见此 链接。
输入格式
第一行输入一个整数 num(1 \leq num \leq 3999)num(1≤num≤3999)。
输出格式
输出 numnumnum 对应的罗马数字。
样例输入
123
样例输出
CXXIII
题解:
罗马计数规则,原来弄错了~
然后看题解才会,上图是另一个罗马变数字的题干,比较简单,每三位模拟即可。
此题把每位存起来再算最为简单。
代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
char *digit[10] = {"","I","II","III","IV","V","VI","VII","VIII","IX"};
char *ten[10] = {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
char *hundreds[10] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
char *thousand[4] = {"","M","MM","MMM"};
int s;
cin>>s;
printf("%s",thousand[s/1000]);
printf("%s",hundreds[s%1000/100]);
printf("%s",ten[s%100/10]);
printf("%s",digit[s%10]);
printf("\n");
return 0;
}