博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode400Nth Digit第N个数字
阅读量:5317 次
发布时间:2019-06-14

本文共 814 字,大约阅读时间需要 2 分钟。

在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。

注意:

n 是正数且在32为整形范围内 ( n < 231)。

示例 1:

输入: 3 输出: 3

示例 2:

输入: 11 输出: 0 说明: 第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是0,它是10的一部分。

 

class Solution {public:    int findNthDigit(int n) {        long long digit = 1; //当前一个数有几位数        long long start = 1; //当前从哪个数开始        long long total = 9; //当前digit位数的数有多少个        while(n > digit * total)        {            n -= total * digit;            digit += 1;            start *= 10;            total *= 10;        }        int number = start + (n - 1) / digit; //以输入11为例子 2 / 2 == 1 但是第二位在10上,而不是在start + 2 / 2 == 11上,所以n - 1        string str = to_string(number);        int res = str[(n - 1) % digit] - '0';//下标从0开始所以n - 1        return res;    }};

 

转载于:https://www.cnblogs.com/lMonster81/p/10434098.html

你可能感兴趣的文章
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
怎么在windows7系统我的电脑中添加快捷方式
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
原生JavaScript第六篇
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
大数据学习
查看>>
简单工厂模式
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
Objective-C 【关于导入类(@class 和 #import的区别)】
查看>>
倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办...
查看>>
【转】javascript 中的很多有用的东西
查看>>
Centos7.2正常启动关闭CDH5.16.1
查看>>
Android 监听返回键、HOME键
查看>>
Android ContentProvider的实现
查看>>
sqlserver 各种判断是否存在(表名、函数、存储过程等)
查看>>
给C#学习者的建议 - CLR Via C# 读后感
查看>>