【剑指OFFER】44. 数字序列中某一位的数字
发布日期:2021-06-29 19:46:46
浏览次数:2
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月13日 15时13分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Devops学习一
2019-04-30
电商数据化管理
2019-04-30
单点登录时序图
2019-04-30
产品经理工作流程
2019-04-30
智慧校园整体架构
2019-04-30
CI/CD学习一
2019-04-30
软件开发组长的职责
2019-04-30
系统分析师学习一
2019-04-30
多线程高并发学习一
2019-04-30
Scrum学习一
2019-04-30
产品经理素质能力模型
2019-04-30
Kubernetes知识图谱
2019-04-30
年终总结全攻略
2019-04-30
ppt效率提升工具&资源网站&广告行业相关推荐
2019-04-30
运维工作内容
2019-04-30
数据分析学习一
2019-04-30
系统架构图
2019-04-30
百度推广工作流程
2019-04-30
事务学习一
2019-04-30
区块链学习一
2019-04-30