传送门:https://leetcode-cn.com/problems/number-of-digit-one/

一、题目描述

给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。

二、示例

输入: 13
输出: 6
解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 。

三、分析

思路:分别对每一位统计,即个位、十位、百位…

eg:给定数字 n=abcde ,分析百位 c,可分以下三种情况:

  • c=0 时,比如53015,此时百位出现1的是 00100 -00199,01100-01199,…,53100-53199,共 53×100=530053\times100=530053×100=5300 个。个数由高位数字决定,并受当前位数的影响。
  • c=1时,比如53115,此时百位出现1包括 c=0 的情况,另外还需考虑低位的情况53100-53115共116个。
  • c>=2时,比如53215,共 54×100=540054\times100=540054×100=5400 个。个数由高位数字决定(高位+1),并乘以当前位数。

四、实现

class Solution {public:int countDigitOne(int n) {int count = 0;long factor = 1;long lower = 0, cur = 0, higher = 0;while(n / factor != 0){lower = n % factor;cur = (n / factor) % 10;higher = n / (factor * 10);if(cur < 2){count += higher * factor;if(cur == 1)count += lower + 1;}else {count += (higher + 1) * factor;}factor *= 10;}return count;}
};

【LeetCode】233. 数字1的个数相关推荐

  1. Java实现 LeetCode 233 数字 1 的个数

    233. 数字 1 的个数 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 1 ...

  2. LeetCode 力扣 233. 数字 1 的个数 countDigitOne

    大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 233. 数字 1 的个数 示 ...

  3. 233. 数字 1 的个数

    给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例 1: 输入:n = 13 输出:6 示例 2: 输入:n = 0 输出:0 解题思路 正确性证明 例如:对于n=301 ...

  4. 233. 数字1的个数

    给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 .

  5. LeetCode--233. 数字 1 的个数

    233. 数字 1 的个数 分析:https://blog.csdn.net/qq_39611310/article/details/119772883 /*** 233. 数字 1 的个数*/pub ...

  6. C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解

    C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解 在线提交: https://leetcode.com/problems/bitwise-and-of-num ...

  7. python统计字母空格个数_python统计字母、空格、数字等字符个数的实例

    如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...

  8. 编程之美计算0到N中包含数字1的个数

    转自:http://blog.csdn.net/hongjuntu123/article/details/8743266 有这样一个函数f(n),对于任意正整数n,它表示从 0 到 n 之间出现&qu ...

  9. bzoj 1833: [ZJOI2010]count 数字计数(数字0-9的个数)

    1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 3528  Solved: 1553 [Submit ...

最新文章

  1. Serverless的理解
  2. PHP的Excel操作
  3. 将图形以PNG格式输出到浏览器或文件
  4. java open course_关于开闭原则 JavaDiscountCourse 类的设计
  5. 问题步骤记录器——“懒教师”的好帮手
  6. 数据结构实验二 树和二叉树的实现
  7. 信息学奥赛C++语言:奇数统计与输出
  8. Ubuntu 8.04 LTS的离线升级包运用教程
  9. ubuntu linux指南 管理篇,Ubuntu Linux指南:管理篇 译者序
  10. mysql大于等于between比较_MySQL范围查询优化,Between与大于等于对比及优化
  11. Lync2013扩展开发
  12. 反向代理和正向代理的概念
  13. key_t键和ftok函数(转)
  14. Eye Diagram眼图测量
  15. 回溯法——电话号码的字母组合
  16. python文件的两种编译方法
  17. 实战-H3C交换机之Web界面
  18. android 播放3gp音频,说说 Android 中如何操作音频与视频文件
  19. 基于PHP的校园财务管理系统
  20. 【Python】编程练习:一元二次方程求根

热门文章

  1. 「后端小伙伴来学前端了」Vue中 this.$set的用法 | 可用于修改对象中数组的某一个对象、 可用于更新数据到视图
  2. springboot tomcat配置_告诉你,Spring Boot 真是个牛逼货!
  3. C语言 IP地址合法性判断 去除字符串首尾空格
  4. kylin安装mysql_源码安装mysql
  5. java与sql用windows身份连接,使用Windows身份验证将我的Sql Server 2008数据库连接到我的Java项目...
  6. python or妙用
  7. 普罗米修斯 监控_接近完美的监控系统—普罗米修斯
  8. objective-c 2.0编程语言,Objective-C 2.0程序设计(原书第2版) 中文PDF扫描版[15MB]
  9. 动态规划解题思路与总结(三万字)
  10. python 中参数 ,解包和变量的入门