统计数字中1的个数最粗鲁的方法就是使用/、%运算符挨个数字的运算;
这里采用的方法是根据运算规律来统计。
class Solution {
public:
int countDigitOne(int n) {
int cnt = 0;
for(long i = 1; i <= n; i*=10){
int a = n /i;
int b = n % i;
cnt += (a%10 == 1) ? (a/10)*i + b+1 : (a+8)/10*i;
}
return cnt;
}
};