计蒜客 难题题库 013 整数转换成罗马数字

给定一个整数num,( 1<=num<=3999),将整数转换成罗马数字。

如1,2,3,4,5对应的罗马数字分别位I,II,III,IV,V等。

格式:

   第一行输入一个整数,接下来输出对应的罗马数字。

提示:

   罗马数字的常识见此链接,对做题有帮助哦~尤其是表示方法。

http://baike.baidu.com/link?url=injU8M4bAoc2zRZQ1GtgrfvuzCJO9PLnq6fpQGJLenakbzo-rS8p-qsYHR_81-aN


样例1

输入:

123

输出:

CXXIII


#include<iostream>
#include<string>
using namespace std;

int main(){
    int num[] = {   1,    4,   5,    9,  10,   40,  50,   90, 100,  400, 500,  900,1000};
    string s[] = {"I", "IV", "V", "IX", "X", "XL", "L", "XC", "C", "CD", "D", "CM", "M"};
    int n;
    cin >> n;
    string res;
    for(int i = 12; i >= 0; --i){
        while(n >= num[i]){
            n -= num[i];
            res += s[i];
        }
    }
    cout << res << endl;
}


你可能感兴趣的:(OJ,计蒜客)