力扣 剑指 Offer 43. 1~n整数中1出现的次数 规律

https://leetcode-cn.com/problems/1nzheng-shu-zhong-1chu-xian-de-ci-shu-lcof/
力扣 剑指 Offer 43. 1~n整数中1出现的次数 规律_第1张图片
思路:应该算是找规律吧,看了别人的题解才会做…
力扣 剑指 Offer 43. 1~n整数中1出现的次数 规律_第2张图片
力扣 剑指 Offer 43. 1~n整数中1出现的次数 规律_第3张图片
力扣 剑指 Offer 43. 1~n整数中1出现的次数 规律_第4张图片
力扣 剑指 Offer 43. 1~n整数中1出现的次数 规律_第5张图片

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

你可能感兴趣的:(面试题,规律)