LintCode 1256. 第n个数位 JavaScript算法

描述

找出无限正整数数列1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中的第n个数位。

说明

n是一个正整数,并且不会超出32位有符号整数的范围(n < 2^31)。

样例

- 样例 1:

输入:3
输出:3

- 样例 2:

输入:11
输出:0
解析:数字序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...11位是0

解析

findNthDigit = function (n) {
     
    len = 1, cnt = 9, start = 1;
    while (n > len * cnt) {
     
        n -= len * cnt;
        ++len;
        cnt *= 10;
        start *= 10;
    }
    start += (n - 1) / len;
    t = String(start);
    return t[(n - 1) % len] - '0';
}

运行结果

LintCode 1256. 第n个数位 JavaScript算法_第1张图片

LintCode 1256. 第n个数位 JavaScript算法_第2张图片

你可能感兴趣的:(LintCode,算法,字符串,python,javascript,动态规划)