public static void main(String[] args) {
// TODO Auto-generated method stub
// 9 90*2 900*3 9000*4 90000*5 ....
int n=2147483647;
// if (n<10) return n;
int a=9;//当前区间几个数
int b=1;//当前区间是几位数
int c=a;//累计到当前区间 有几个数
int sum=a*b;//累计到当前区间 有几个数字
while (n>sum) {
a=a*10;
b++;
System.out.println(a+" "+b+" "+(n-sum));
if (a>(n-sum)/b) break;
c+=a;
sum+=a*b;
}//先找到是几位数的区间
a/=10;
int i=(n-sum)/b;
int j=(n-sum)%b;
if (j>0)
{
i++;
j--;
}
else j=b-1;
//再找到是第几个数
char res=String.valueOf(i+c).charAt(j);
System.out.println(res-48);
}
数字序列中某一位的数字
最新推荐文章于 2024-07-27 13:31:57 发布