[LintCode]3.统计数字

来源:互联网 发布:淘宝网店转让出售 编辑:程序博客网 时间:2024/05/22 10:40

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

样例

例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)

思路:找出0~N中每个数字的每一位,与k进行比较,若相等则加1。使用%取模来实现取位,用/10来实现进位,依次从0-n进行遍历即可。

class Solution {public:    /*     * param k : As description.     * param n : As description.     * return: How many k's between 0 and n.     */    int digitCounts(int k, int n) {        int count=0;           for(int i=0;i<=n;i++)          {              int number=i;              while(number >= 10)  //number>= 10            {                  if(number%10 == k){                      count++;                  }                  number = number/10;              }             if(number == k)  //number0~9                count++;         }          return count;    }};


原创粉丝点击