整数转罗马数字

xiaoxiao2021-02-28  46

给定一个整数,将其转为罗马数字。

输入保证在 1 到 3999 之间。

其实只有4和9这样的数比较特殊,需要用大数减小数,但这里我直接copy了百度百科的方法,将1-3000表示出来

static int num = []() { std::ios::sync_with_stdio(false); cin.tie(NULL); return 0; }(); class Solution { public: string intToRoman(int num) { char* c[4][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"} }; string s; s.append(c[3][num/1000 ]); s.append(c[2][num/100 ]); s.append(c[1][num/10 ]); s.append(c[0][num ]); return s; } };
转载请注明原文地址: https://www.6miu.com/read-2614410.html

最新回复(0)