计蒜客 整数转换成罗马数字

来源:互联网 发布:室内布置设计软件 编辑:程序博客网 时间:2024/05/16 14:22

给定一个整数 numnum,将整数转换成罗马数字。

如 1,2,3,4,51,2,3,4,5 对应的罗马数字分别为IIIIIIIVV等,更详细的说明见此 链接。

输入格式

第一行输入一个整数 num(1 \leq num \leq 3999)num(1num3999)

输出格式

输出 numnum 对应的罗马数字。

样例输入

123

样例输出

CXXIII

#include <iostream>
using namespace std;


string Roman_num(int int_num);


int main()
{
    int num;
    cin>>num;
    if(num/1000!=0)
    {
        cout<<Roman_num(num-num%1000);
        num=num%1000;
    }
    if(num/100!=0)
    {
        cout<<Roman_num(num-num%100);
        num=num%100;
    }
    if(num/10!=0)
    {
        cout<<Roman_num(num-num%10);
        num=num%10;
    }
    if(num!=0)
        cout<<Roman_num(num);


    return 0;
}




string Roman_num(int int_num)
{
    string roman_sor[10][10] ={{"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"}};
    if(int_num<10)
        return roman_sor[0][int_num-1];
    else if(int_num>=10&&int_num<100)
        return roman_sor[1][int_num/10-1];
    else if(int_num>=100&&int_num<1000)
        return roman_sor[2][int_num/100-1];
    else if(int_num>=1000)
        return roman_sor[3][int_num/1000-1];
}

原创粉丝点击