突然发现书上这个题目怎么代码好复杂,也没细看直接上我的代码:
public class Solution {
public int NumberOf1Between1AndN_Solution(int n) {
int num = n;
int small = 1;
int sum = 0;
while(n!=0){
int p_ = n/10;
int _p = n%10;
if(_p==1){
sum+=p_*small;
sum+=num%small+1;
}else if (_p>1) {
sum+=(1+p_)*small;
}else{
sum+=p_*small;
}
n/=10;
small*=10;
}
return sum;
}
}