leetcode-面试题43-1~n整数中1出现的个数

题目描述:

 

 方法:

class Solution {
    public int countDigitOne(int n) {
        int digit = 1,res = 0;
        int high = n / 10,cur = n % 10,low = 0;
        while(high != 0 || cur != 0){
            if(cur == 0) res += high * digit;
            else if(cur == 1) res += high * digit + low + 1;
            else res += (high + 1) * digit;
            low += cur * digit;
            cur = high % 10;
            high /= 10;
            digit *= 10;
        }
        return res;

    }
}

 

posted @ 2020-05-15 20:24  oldby  阅读(156)  评论(0编辑  收藏  举报