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

int mycount(int n,int x ){
    int count = 0;
    int i = 0;
    for(i;i<=n;i++){
        if(i < 10 && i == x){
          count++;
        }
        else if(i >= 10){
            for(int j = i;j!=0;j/=10){
                int m = j%10;
                if(m == x){
                    count++;
                }
            }
        }
    }
    return count;
}

从0 - n,每个数字分别计算x出现的次数,然后相加

其他牛人的做法 : https://www.cnblogs.com/cyjb/p/digitOccurrenceInRegion.html

// 计算数字 X 在 1-n 中出现的次数。
int count(int n, int x) {
    int cnt = 0, k;
    for (int i = 1;k = n / i;i *= 10) {
        // 高位的数字。
        int high = k / 10;
        if (x == 0) {
            if (high) {
                high--;
            } else {
                break;
            }
        }
        cnt += high * i;
        // 当前位的数字。
        int cur = k % 10;
        if (cur > x) {
            cnt += i;
        } else if (cur == x) {
            // n - k * i 为低位的数字。
            cnt += n - k * i + 1;
        }
    }
    return cnt;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,354评论 0 33
  • 转自http://blog.csdn.net/kkdd2013/article/details/51882774 ...
    Akademos阅读 10,316评论 3 0
  • 文/少奶奶 端午节三天小长假又来了,不想出去玩想在家安安静静看书的你,又不知道看什么书的同学可以看过来了。 NO....
    132db6d301e0阅读 3,073评论 3 2
  • 正月十七,民俗文化艺术节刚刚落幕,这厢便呼朋唤友,扶老携幼的,向着大伓山进发了. 俗成规矩是这样的:向佛之...
    宣尼诗阅读 3,138评论 0 3
  • 国庆节又到了,感觉今年时间过的很快,春节的喜气还尤言在耳,可转眼就到国庆了。晚上七点多躺在卧铺车厢床上,看着窗外高...
    文舟阅读 1,567评论 0 0

友情链接更多精彩内容