09 | #整数中1出现的次数(从1到n整数中1出现的次数)#

整数中1出现的次数(从1到n整数中1出现的次数)

http://www.nowcoder.com/practice/bd7f978302044eee894445e244c7eee6

通过数学归纳方法总结规律,可以类比得出这样的公式(可参考百位类比): alt

class Solution {
public:
    int NumberOf1Between1AndN_Solution(int n) {
        int res = 0;
        long long multik = 1;
        for (int k = 0; n >= multik; k++) { /* multik代表10^k */
            long long multikTmp = multik * 10; /* 10^(k + 1) */
            res += ((n / multikTmp) * multik) + min(max((n % multikTmp) - multik + 1, 0LL), multik); /* 注意0LL */
            multik *= 10;
        }
        return res;
    }
};
每日算法 文章被收录于专栏

每日算法、玩转技术、聪明理财、幸福生活!

全部评论

相关推荐

有没有经济学家能告诉我,三年后中国的就业市场会不会好转?我在校招中拿到了一份9k+的offer,还是行业的龙头企业,心里其实不想再考研了。但又总是担心,万一读研后薪资更高,我会不会后悔呢?
Fyhyuky:三年后肯定不会啊,只会比现在更烂,你自己看看现在有没有什么增长点,电车都是国家补贴兜底才发展出来的,已经比较违背市场自然规律了,互联网更不用说了,国家强力打压,传统制造业转型失败,现在苟延残喘中
点赞 评论 收藏
分享
10-13 17:47
门头沟学院 Java
wulala.god:图一那个善我面过,老板网上找的题库面的
点赞 评论 收藏
分享
头像
10-16 09:58
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务