class Solution {
public:
int numberOf1Between1AndN_Solution(int n) {
vector<int>vec;
while(n) vec.push_back(n%10),n/=10;
int res=0;
for(int i=vec.size()-1;i>=0;i--)
{
int left=0,right=0,t=1;
for(int j=vec.size()-1;j>i;j--)
left=left*10+vec[j];
for(int j=i-1;j>=0;j--)
right=right*10+vec[j],t*=10;
res+=left*t;
if(vec[i]==1)res=res+right+1;
if(vec[i]>1) res+=t;
}
return res;
}
};