class Solution {
public:
string get(int &n,int L,char A,char B,char C){
string ans = "";
if(n >= L * 9){
n -= L * 9;
ans += C;
ans += A;
}
if(n >= L * 4 && n < L * 5){
n -= L * 4;
ans += C ;
ans += B;
}
if(n >= L * 5){
n -= L * 5;
ans += B;
}
while( n >= L){
n -= L;
ans += C;
}
return ans;
}
string intToRoman(int num) {
int n = num;
string ans = "";
if(n >= 1000)ans += get(n,1000,' ',' ','M');
if(n >= 100)ans += get(n,100,'M','D','C');
if(n >= 10)ans += get(n,10,'C','L','X');
if(n) ans += get(n,1,'X','V','I');
return ans;
}
};
leetcode 12. Integer to Roman
最新推荐文章于 2025-07-19 23:00:01 发布