【LeetCode】233. 数字1的个数
传送门: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的个数相关推荐
- Java实现 LeetCode 233 数字 1 的个数
233. 数字 1 的个数 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 1 ...
- LeetCode 力扣 233. 数字 1 的个数 countDigitOne
大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 233. 数字 1 的个数 示 ...
- 233. 数字 1 的个数
给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例 1: 输入:n = 13 输出:6 示例 2: 输入:n = 0 输出:0 解题思路 正确性证明 例如:对于n=301 ...
- 233. 数字1的个数
给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 12, 13 .
- LeetCode--233. 数字 1 的个数
233. 数字 1 的个数 分析:https://blog.csdn.net/qq_39611310/article/details/119772883 /*** 233. 数字 1 的个数*/pub ...
- C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解
C#版 - Leetcode 201. 数字范围按位与(bitwise AND) - 题解 在线提交: https://leetcode.com/problems/bitwise-and-of-num ...
- python统计字母空格个数_python统计字母、空格、数字等字符个数的实例
如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...
- 编程之美计算0到N中包含数字1的个数
转自:http://blog.csdn.net/hongjuntu123/article/details/8743266 有这样一个函数f(n),对于任意正整数n,它表示从 0 到 n 之间出现&qu ...
- bzoj 1833: [ZJOI2010]count 数字计数(数字0-9的个数)
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 3528 Solved: 1553 [Submit ...
最新文章
- Serverless的理解
- PHP的Excel操作
- 将图形以PNG格式输出到浏览器或文件
- java open course_关于开闭原则 JavaDiscountCourse 类的设计
- 问题步骤记录器——“懒教师”的好帮手
- 数据结构实验二 树和二叉树的实现
- 信息学奥赛C++语言:奇数统计与输出
- Ubuntu 8.04 LTS的离线升级包运用教程
- ubuntu linux指南 管理篇,Ubuntu Linux指南:管理篇 译者序
- mysql大于等于between比较_MySQL范围查询优化,Between与大于等于对比及优化
- Lync2013扩展开发
- 反向代理和正向代理的概念
- key_t键和ftok函数(转)
- Eye Diagram眼图测量
- 回溯法——电话号码的字母组合
- python文件的两种编译方法
- 实战-H3C交换机之Web界面
- android 播放3gp音频,说说 Android 中如何操作音频与视频文件
- 基于PHP的校园财务管理系统
- 【Python】编程练习:一元二次方程求根
热门文章
- 「后端小伙伴来学前端了」Vue中 this.$set的用法 | 可用于修改对象中数组的某一个对象、 可用于更新数据到视图
- springboot tomcat配置_告诉你,Spring Boot 真是个牛逼货!
- C语言 IP地址合法性判断 去除字符串首尾空格
- kylin安装mysql_源码安装mysql
- java与sql用windows身份连接,使用Windows身份验证将我的Sql Server 2008数据库连接到我的Java项目...
- python or妙用
- 普罗米修斯 监控_接近完美的监控系统—普罗米修斯
- objective-c 2.0编程语言,Objective-C 2.0程序设计(原书第2版) 中文PDF扫描版[15MB]
- 动态规划解题思路与总结(三万字)
- python 中参数 ,解包和变量的入门