```function NumberOf1Between1AndN_Solution(n)
{
    // write code here
    //注意时间复杂度,暴力解法不可取
    //参考https://blog.nowcoder.net/n/c503c1bb13724f1792fe5456c86c5059?f=comment 以下是我的js版本
    let base=1 //位数从个位数开始,以下函数在位数为个位数和最大位数时即低位b为0和高位a为0时仍然成立,可以自己模拟
    let res=0
    while(base<=n){ 
        let cur=Math.floor(n/base%10)
        let a=Math.floor(n/base/10)
        let b=n%base
        if(cur===0){ res +=a*base}
        else if(cur===1){res+=a*base+(b+1)}
        else {res +=(a+1)*base}
        base *=10 //位数向左移一位
    }
    return res
}
module.exports = {
    NumberOf1Between1AndN_Solution : NumberOf1Between1AndN_Solution
};