【剑指Offer】数字序列中某一位的数字
发布日期:2022-02-10 08:55:16
浏览次数:24
分类:技术文章
本文共 941 字,大约阅读时间需要 3 分钟。
题目
数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。
请写一个函数,求任意第n位对应的数字。
思路
意思大概是这么个意思,但是轮到自己写的时候总是出错,不知道为啥,于是改了种方法,就是n为两位数以上的时候直接先减9,免得0干扰。
代码
class Solution {public: int findNthDigit(int n) { if(n < 10){ return n; } n = n - 9; long base = 90,digits = 2; while (n - base * digits > 0){ n -= base * digits; base *= 10; digits ++; } long number = getBeginNumber(digits) + n / digits; int index = n % digits; if(index == 0){ number--; return number % 10; } for(int i = 0;i < digits - index;i++){ number = number / 10; } return number % 10; } long getBeginNumber(int dig){ if(dig == 1){ return 0; } int sum = 1; for(int i = 1;i < dig;i++){ sum *= 10; } return sum; }};
转载地址:https://blog.csdn.net/hanmin822/article/details/105848401 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月09日 07时36分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Unity中加载Texture2D不断消耗内存的问题
2019-04-27
手把手教你使用Unity制作一个飞机喷射火焰尾气的粒子效果
2019-04-27
gitee使用教程,创建项目仓库并上传代码
2019-04-27
Unity3D 上传日志
2019-04-27
Unity3D 序列帧
2019-04-27
Unity3D 动态创建图集并压入精灵(NGUI)
2019-04-27
C# 将Excel转xml
2019-04-27
Unity3D log写入文件
2019-04-27
Unity3D动态创建摄像机
2019-04-27
unity 根据纪元时间(1970/1/1)转换为DateTime
2019-04-27
C# 字符串md5加密
2019-04-27
unity3D 拖拽旋转3D物体
2019-04-27
unity3D LineRender的使用:插值移动终点
2019-04-27
unity3d 根据手指触摸的位置去放置UI
2019-04-27
加锁单例
2019-04-27
unity3D 让粒子在UI上播放
2019-04-27
C++的dll导出类
2019-04-27
Matlab与C++混合编程
2019-04-27
unity3D 射线球体投射碰撞检测
2019-04-27
Unity3D 摇一摇功能
2019-04-27