问题来源:https://leetcode.com/problems/nth-digit/
问题描述:Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...
Note:
n is positive and will fit within the range of a 32-bit signed integer (n < 231).
Example 1:
Input: 3 Output: 3
Example 2:
Input: 11 Output: 0 Explanation: The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10.
我的代码:
int findNthDigit(int n){
int length = 0;
for (int i = 0; i < 10; i++){
if (n - (pow(10, i + 1) - pow(10, i))*(i + 1) > 0)
n = n - (pow(10, i + 1) - pow(10, i))*(i + 1);
else{
length = i + 1;//锁定目标数组的位数
break;
}
}
n--;
int number = pow(10, length - 1) + n / length;//确定number
return (int)(number / pow(10, length - 1 - n % length)) % 10;
}