leetcode13
生活随笔
收集整理的這篇文章主要介紹了
leetcode13
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
阿拉伯數字轉化為羅馬數字
?
解題思路:
設置兩個vector,一個放羅馬數字,一個放羅馬數字所對應的阿拉伯數字;
從給定數字num的最高位開始,逐位轉化;n-=2;
如果該位數字是1-3,則在結果字符串上加上該位數字大小個roman[n]
如果該位數字是4,則在結果字符串上加上roman[n] + roman[n-1]
如果改為數字是5-8,則在結果字符串上加上roman[n-1] + 若干個roman[n]
如果該位數字是9,則在結果字符串上加上roman[n]+roman[n-2];
?
代碼:
class Solution { public:string intToRoman(int num) {string res = "";vector<char> roman = { 'M', 'D', 'C', 'L', 'X', 'V', 'I' };vector<int> value = { 1000, 500, 100, 50, 10, 5, 1 };for (int n = 0; n < 7; n += 2) {int x = num / value[n];if (x >= 1 && x <= 3) {for (int i = 0; i < x; i++) {res += roman[n];}}else if (x == 4) {res = res + roman[n] + roman[n - 1];}else if (x >= 5 && x <= 8) {res += roman[n - 1];for (int i = 5; i < x; i++) {res += roman[n];}}else if (x == 9) {res = res + roman[n] + roman[n - 2];}num %= value[n];}return res;} };?
轉載于:https://www.cnblogs.com/yxlsblog/p/10637741.html
總結
以上是生活随笔為你收集整理的leetcode13的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通信网理论基础
- 下一篇: flink sql udf jar包_F