1. 程式人生 > >計蒜客 整數轉換成羅馬數字

計蒜客 整數轉換成羅馬數字

樣例輸出

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];
}