剑指 Offer 44. 数字序列中某一位的数字
思路
本题解来自:面试题44. 数字序列中某一位的数字(迭代 + 求整 / 求余,清晰图解)
方法:找规律
1 class Solution { 2 public: 3 int findNthDigit(int n) { 4 int digit = 1; 5 long long start = 1; 6 long long count = 9; 7 while (n > count) { // 1. 8 n -= count; 9 digit += 1; 10 start *= 10; 11 count = digit * start * 9; 12 } 13 long long num = start + (n - 1) / digit; // 2. 14 return to_string(num)[(n - 1) % digit] - '0'; // 3. 15 16 } 17 };