欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试题43. 1~n 整数中 1 出现的次数

程序员文章站 2022-03-13 12:55:23
...

面试题43. 1~n 整数中 1 出现的次数
面试题43. 1~n 整数中 1 出现的次数
面试题43. 1~n 整数中 1 出现的次数
面试题43. 1~n 整数中 1 出现的次数
面试题43. 1~n 整数中 1 出现的次数

class Solution {
    public int countDigitOne(int n) {
        int ans = 0;
        int digit = 1;
        int high=n/10;
        int low = 0;
        int cur=n%10;
        while(high!=0||cur!=0){
            if(cur==0) ans+=digit*high;
            else if(cur==1) ans+=high*digit+low+1;
            else if(cur>1) ans+=(high+1)*digit;
            low+=cur*digit;
            digit*=10;
            cur=high%10;
            high/=10;
        }
        return ans; 
    }
}
相关标签: 刷题 刷LeetCode