public static int countDigitOne(int n){
int base=1;
int a=n/base/10;
int b=n%base;
int cur=n/base%10;
int sum=0;
while(a!=0||cur!=0){
if(cur>1){
sum+=(a+1)*base;
}
else if(cur==1){
sum+=a*base+b+1;
}
else sum+=a*base;
b+=cur*base;
cur=a%10;
a/=10;
base*=10;
}
return sum;
}
07-29
07-29
07-29
07-29
07-29