include "stdafx.h"
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
class Solution {
public:
int NumberOf1Between1AndN_Solution(int n)
{
int current= n % 10 ;
int round = n / 10 ;
int former=0;
int num = 0;
int base = 1;
while (round!=0)
{
switch (current)
{
case 0:
num += round*base;
break;
case 1:
num += round*base + 1 + former;
break;
default:
num += round*base + base;
break;
}
former = current*base+former;
base = base * 10;
n = n / 10;
current = n % 10;
round= n /10;
}
//当round==0时,
switch (current)
{
case 0:
num += round*base;
break;
case 1:
num += round*base + 1 + former;
break;
default:
num += round*base + base;
break;
}
return num;
}
};
int main()
{
Solution so;
cout << so.NumberOf1Between1AndN_Solution(21345) << endl;
}