import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型
* @return int整型
*/
public int findNthDigit (int n) {
//10 180+10 2700+180+10
//[0,10) [10,100) [100,1000)
int bit = 1 ;//位数
long low = 0 ;//下限
long high = 10 ;//上限
//找n在哪个区间(每个区间都有若干位数,当n高于区间的位数,就减去这些区间的位数
//继续判断下一个区间
while(n >= (high-low)*bit) {
long count = (high-low)*bit;
n-=count ;
bit++ ;
low=(low==0?10:low*10) ;
high *= 10 ;
}
//在区间low~high的第num位数(从0开始)
long num = n / bit + low ;
//在第num位数的第一个位置
int bbit = n % bit ;
int div = (int)(Math.pow(10.0,bit-bbit-1)) ;
return (int)(num/div)%10 ;
}
}