#include<cstdio>
#include<cstring>
int sum[36000];
long long int lo[36000];
int put[1000000],tot;
int cal(int x)
{
int num=0;
while(x)
{
num++;
x/=10;
}
return num;
}
void init()
{
sum[0]=0;
for(int i=1;i<33000;i++)
{
sum[i]=sum[i-1]+cal(i);
}
lo[0]=0;
for(int i=1;i<33000;i++)
lo[i]=lo[i-1]+sum[i];
tot=1;
for(int i=1;i<33000;i++)
{
int t,m,len,tem[500];
t=i;
len=0;
while(t)
{
m=t%10;
tem[len++]=m;
t/=10;
}
while(len--)
{
put[tot++]=tem[len];
}
}
}
int main()
{
int T;
init();
scanf("%d",&T);
while(T--)
{
int x;
scanf("%d",&x);
int i=1;
while(lo[i]<x&&i<33000)
i++;
printf("%d\n",put[x-lo[i-1]]);
}
}
poj 1019 求一个1到n的序列中,第k个数字是多少
最新推荐文章于 2021-05-21 10:22:19 发布