【剑指OFFER】44. 数字序列中某一位的数字
发布日期:2021-06-29 19:46:46
浏览次数:3
分类:技术文章
本文共 950 字,大约阅读时间需要 3 分钟。
题目:数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。
请写一个函数,求任意第n位对应的数字。
示例 1:
输入:n = 3 输出:3示例 2:
输入:n = 11 输出:0限制:
0 <= n < 2^31答案:
/* 数字范围 数量 位数 占多少位 1-9 9 1 9 10-99 90 2 180 100-999 900 3 2700 1000-9999 9000 4 36000 ... 例如 n= 2901 = 9 + 180 + 2700 + 12 即一定是4位数中的第12位 n1 = 12; 该位置数据为 = 1000 + (12 - 1)/ 4 = 1000 + 2 = 1002 定位1002中的位置 = (12 - 1) % 4 = 3 s.charAt(3) = 2;*/class Solution { public int findNthDigit(int n) { long start = 1; //起始数字 int bitNum = 1; //位数 long bitTake = 9; //占多少位 while(n > bitTake){ n -= bitTake; start *= 10; bitNum++; bitTake = 9 * start * bitNum; } long num = start + (n - 1) / bitNum; int place = (n - 1) % bitNum; return Long.toString(num).charAt(place)-'0'; }}
转载地址:https://darkness.blog.csdn.net/article/details/115253561 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月10日 02时49分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
freemarker模板当标签内的元素为空报错解决方案
2019-04-30
序列化对象
2019-04-30
理解对象意思
2019-04-30
百度地图路书开发---增加路书销毁
2019-04-30
echarts日历自定义月份
2019-04-30
如何解决中文乱码问题
2019-04-30
关于如何彻底卸载SQL SERVER2005 2008
2019-04-30
整理sql2008数据库如何附加到sql2000或sql2005
2019-04-30
Eclipse 简便设置
2019-04-30
Bootstrap修改caret大小
2019-04-30
适应大分辨率显示屏操作
2019-04-30
前端技巧:如何让一个div 在另一个div上面显示,却不会影响下一个div的位置?
2019-04-30
前端技巧:echarts中国地图外边框设置阴影投影效果------荧光效果 随笔
2019-04-30
随笔:简单的蒙版加载页面实现
2019-04-30
处理echarts地图省份坐标重叠的方法
2019-04-30
获取浏览器可见窗口大小(转载)
2019-04-30
给文字加一个渐变色
2019-04-30
使用网格在父元素中水平和垂直地居中定位子元素
2019-04-30