
剑指offer JZ31 整数中1出现的次数
发布日期:2021-05-07 13:14:41
浏览次数:10
分类:原创文章
本文共 637 字,大约阅读时间需要 2 分钟。
整数中1出现的次数
输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数
例如,1~13中包含1的数字有1、10、11、12、13因此共出现6次
思路一
遍历
public int NumberOf1Between1AndN_Solution(int n) { //遍历,除以10取余,判断计数 int count = 0; for(int i=1;i<=n;i++){ int t = i; while(t!=0){ if(t%10==1) count++; t/=10; } } return count; }
思路二
从个位到十位、百位,判断每一位上出现1的次数
例1:n = 32 ,则个位上出现了4次(01、11、21、31)
以百位上1出现的次数为例考虑各种情况
1、百位为0 , 如n = 3021
2、百位为1, 如n = 3121
3、百位>=2,如n = 3521
显然这三种情况百位出现1的次数计算方法是有点不一样的
第一种:n=3021,百位1出现的次数就是 30/10100
第二种:n=3121,则对应 31/10100 + 21 + 1
第三种:n=3521,则对应(35/10 + 1)*100
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年03月20日 05时30分54秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
做做Java
2021-05-07
攻防世界新手区pwn
2021-05-07
2020-2021新技术讲座课程
2021-05-07
Linux服务器搭建常见开发环境
2021-05-07
GIT简介
2021-05-07
eclipse github团队成员修改工程后push推送
2021-05-07
Mybatis-Plus之@TableField字段
2021-05-07
shell中的数学运算
2021-05-07
shell 数学运算
2021-05-07
如何使用4G模块通过MQTT协议传输温湿度数据到onenet
2021-05-07
图解:网络硬件的发展史
2021-05-07
vue项目配置文件vue.config.js中devServer.proxy 使用说明
2021-05-07
map的find函数和count函数
2021-05-07
C++并发与多线程(一)
2021-05-07
C++ 并发与多线程(五)
2021-05-07
STM32--USART串口收发数据
2021-05-07
逆合成孔径雷成像(一)— 傅里叶变换基础1
2021-05-07
elf格式静态链接和动态链接
2021-05-07
openthread编译错误:error: could not find ctags
2021-05-07
7628 EDCCA认证寄存器修改(认证自适应)
2021-05-07