【剑指Offer】1~n整数中1出现的次数
发布日期:2022-02-10 08:55:15
浏览次数:34
分类:技术文章
本文共 665 字,大约阅读时间需要 2 分钟。
题目
输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。
例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。
思路
我们假设高位为high,当前位为cur,低位为low,i代表着需要统计的位置数(1对应个位,10对应十位,100对应百位),则对每一位的个数count有:
cur=0,count = high*i; cur=1,count=high*i+low+1; cur>1,count=high*i+i 最终累加所有位置上的个数即最终答案。代码
class Solution {public: int countDigitOne(int n) { long m = 1; int sum = 0; while(n/m!=0){ int a = (n / m) % 10; if(a == 0){ sum += (n/(m*10))*m; }else if(a == 1){ sum += (n/(m*10))*m + n%m + 1; }else{ sum += (n/(m*10))*m + m; } m = m * 10; } return sum; }};
转载地址:https://blog.csdn.net/hanmin822/article/details/105825259 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月19日 12时08分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Tomcat 连接数与线程池详解
2019-04-27
漫画:HTTP 协议极简教程,傻瓜都能看懂!
2019-04-27
java高级应用:线程池全面解析
2019-04-27
Spring Boot 打包插件,真是太有用了!
2019-04-27
7 个棘手的 JavaScript 面试题!
2019-04-27
世纪之战:Python和Java,到底学哪个更好?
2019-04-27
String 也能做性能优化,我只能说牛逼!
2019-04-27
重磅!!Redis 6.0.0 已发布,有史以来改变最大的版本
2019-04-27
IntelliJ IDEA 内存优化最佳实践!
2019-04-27
Spring Boot Dubbo 应用启停源码分析
2019-04-27
LinkedHashMap 源码分析,底层竟这么简单!
2019-04-27
在滴滴和头条干了 2 年后端开发,太真实…
2019-04-27
IntelliJ IDEA 新版本又来了,修复严重 bug!
2019-04-27
程序员除了写代码,还应重视哪些方面?
2019-04-27
从 0 开始手写一个Tomcat,7 步搞定!
2019-04-27
实现java多线程的3种方式,99%人没用过第3种
2019-04-27
从入门到熟悉 HTTPS 的 9 个问题
2019-04-27
18 个示例带你掌握 Java 8 日期时间处理!
2019-04-27
IntelliJ IDEA For Mac 快捷键,够骚,速度收藏!
2019-04-27
一文搞懂 Java 中的枚举,写得非常好!
2019-04-27