前端手写题 整数转罗马数字

56 阅读1分钟
    let result=''
    let target=num
    let obj={
        'I':1,
        'V':5,
        'X':10,
        "L":50,
        "C":100,
        "D":500,
        "M":1000,
    }
    let i=0
    let arr=[['I','V','X'],['X',"L","C"],['C','D','M'],['M']]
    while(target!=0){
        let a=target%10
        let str=''
        if(a<=3){
            str=arr[i][0].repeat(a)
        }else if(a==4){
            str=arr[i][0]+arr[i][1]
        }else if(a<=8){
            str=arr[i][1]+arr[i][0].repeat(a-5)
        }else{
            str=arr[i][0]+arr[i][2]
        }
        i++
        result=str+result
        target=Math.floor(target/10)
    }
    return result
};
console.log(intToRoman(3749))