博客
关于我
剑指offer JZ31 整数中1出现的次数
阅读量:335 次
发布时间:2019-03-04

本文共 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/10
100 + 21 + 1
第三种:n=3521,则对应(35/10 + 1)*100

转载地址:http://dgle.baihongyu.com/

你可能感兴趣的文章
剑指offer JZ15 反转链表
查看>>
剑指offer JZ21 栈的压入弹出序列
查看>>
剑指offer JZ31 整数中1出现的次数
查看>>
实现基于scrapy框架的天气预报爬虫hengYangSpaider @572311文
查看>>
Windows 10 安装 MySQL 8
查看>>
maven打包指定名称并去除jar-with-dependencies后缀
查看>>
Netty4服务端入门代码示例
查看>>
Netty4客户端入门代码示例
查看>>
java连接mysql,jdbc驱动
查看>>
python 垃圾回收机制 以及 内存管理
查看>>
C++中的static成员函数以及static成员变量详解
查看>>
操作系统前传第六课--开发中的辅助工具
查看>>
Linux系统编程44 信号 - 信号的响应过程分析!!!
查看>>
QT17 - 对话框及其类型 QDialog
查看>>
Linux系统编程67 网络编程1 - 报式套接字传输
查看>>
设备驱动之阻塞
查看>>
Binder进程间通信系统第三篇-----Binder进程间通信之 MediaServer 简析
查看>>
电平触发设备休眠唤醒--输入子系统+内核线程
查看>>
python数据类型
查看>>
机器学习之九:提升树和GBDT
查看>>