LintCode 1256. 第n个数位 JavaScript算法

tech2026-01-09  13

描述

找出无限正整数数列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'; }

运行结果

最新回复(0)