lintcode 3 统计数字

问题描述:计算数字k在0到n中的出现的次数,k可能是0~9的一个值

class Solution {
public:
    /**
     * @param k: An integer
     * @param n: An integer
     * @return: An integer denote the count of digit k in 1..n
     */
    int digitCounts(int k, int n) {
        // write your code here
        int nums=0;//计数
        for(int i=0;i<=n;i++)
        {
            if(k==0&&nums==0)//当k=0时,计数初值有所变化
            {
                nums=1;
            }
                
            int number=i;
            if(i>=k)//计数主体,减去k与10取余得0,则+1;
            {
            
                while(number>0)
                {
                    if((number-k)%10==0)
                    {
                        nums++;
                        
                    }
                    number=number/10;
                }
            }
        }
        return nums;
    }
};

贼拉开心

猜你喜欢

转载自blog.csdn.net/fuck_you_sb/article/details/81319700
今日推荐