题目链接
给定一个整数 numnum,将整数转换成罗马数字。
如 1,2,3,4,51,2,3,4,5 对应的罗马数字分别为I,II,III,IV,V等,更详细的说明见此 链接。
输入格式
第一行输入一个整数num(1≤num≤3999)。
输出格式
输出 num 对应的罗马数字。
样例输入
123
样例输出
CXXIII
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,arr[5],k;
char* str[5][10] = {
//注意一点一定要定义为char* 类型,即指针类型,否则的话,char类型会因为超过一个字符而报错
//将1,2,3,...,7,8,9,10,20,30...100,200,1000,2000,3000这些整数保存到一个二维数组中
{"","","","","","","","","",""},
{"","I","II","III","IV","V","VI","VII","VIII","IX"},
{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},
{"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},
{"","M","MM","MMM"}
};
scanf("%d",&a);
k = 1;
while(a){
arr[k++] = a % 10;
a /= 10;
}
for(int i = k - 1;i >= 1;i--)
printf("%s",str[i][arr[i]]);
printf("\n");
return 0;
}