题目

12、整数转罗马数字

思路

没啥好写的

代码

class Solution {
    func intToRoman(num: Int64): String {
        var n = num
        var index = 0
        var rArr=Array<Rune>(40, item: r' ')
        while(n>=1000){
            rArr[index] = r'M'
            index++
            n-=1000
        }
        while(n>=900){
            rArr[index] = r'C'
            index++
            rArr[index] = r'M'
            index++
            n-=900
        }
        while(n>=500){
            rArr[index] = r'D'
            index++
            n-=500
        }
        while(n>=400){
            rArr[index] = r'C'
            index++
            rArr[index] = r'D'
            index++
            n-=400
        }
        while(n>=100){
            rArr[index] = r'C'
            index++
            n-=100
        }
        while(n>=90){
            rArr[index] = r'X'
            index++
            rArr[index] = r'C'
            index++
            n-=90
        }
        while(n>=50){
            rArr[index] = r'L'
            index++
            n-=50
        }
        while(n>=40){
            rArr[index] = r'X'
            index++
            rArr[index] = r'L'
            index++
            n-=40
        }
        while(n>=10){
            rArr[index] = r'X'
            n-=10
            index++
        }
        while(n>=9){
            rArr[index] = r'I'
            index++
            rArr[index] = r'X'
            index++
            n-=9
        }
        while(n>=5){
            rArr[index] = r'V'
            index++
            n-=5
        }
        while(n>=4){
            rArr[index] = r'I'
            index++
            rArr[index] = r'V'
            index++
            n-=4
        }
        while(n>=1){
            rArr[index] = r'I'
            index++
            n-=1
        }
        return String(rArr).trimAsciiRight()
    }
}

复杂度

/

遇到的坑

/

结果

cangjie

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐