网站关键词 提醒,哪个网站做视频有钱挣,icp备案网站要先建好吗,网站备案要网站做才可以使用吗1. 题目
在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 个数字。
注意: n 是正数且在32为整形范围内 ( n 2^31)。
示例 1:
输入:
3
输出:
3示例 2:
输入:
11
输出:
0
说明:
第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 1--0--, 11, ... 里是0 2^31)。
示例 1:
输入:
3
输出:
3示例 2:
输入:
11
输出:
0
说明:
第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 1--0--, 11, ... 里是0它是10的一部分。来源力扣LeetCode 链接https://leetcode-cn.com/problems/nth-digit 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
《剑指Offer》同题面试题44. 数字序列中某一位的数字
2. 解题
1位数9个数字长度92位数90个数字长度2*903位数900个长度3*900
class Solution {
public:int findNthDigit(int n) {if(n 10)return n;long len 9;int i 2, k 10, num9;while(leni*9*pow(10,i-1) n){len i*9*pow(10,i-1);num 9*pow(10,i-1);i;}if((n-len)%i)num (n-len)/i 1;elsenum (n-len)/i;string s(to_string(num));return s[((n-len)%i i -1)%i]-0;}
};class Solution { //2020.2.24
public:int findNthDigit(int n) {if(n 10)return n;int count 9, i 2, num 9;while(count9*pow(10,i-1)*i n){count 9*pow(10,i-1)*i;num 9*pow(10,i-1);i;}n - count;//剩余的位数if(n%i ! 0)//不等于0下一个数的第几位return fd(numn/i1,n%i);return fd(numn/i,i);//否则当前数的最后一位}int fd(int num, int n){int i int(1e9);int bit;while(num/i 0)i / 10;while(n--){bit num/i;num - bit*i;i / 10;}return bit;}
};