#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <ctype.h>
using namespace std;
#define K sqrt(2147483647) + 1
#define MAXN 1001000
#define LL long long
char num[MAXN];
LL sum[MAXN];
int fan( int i)
{
int res = 0;
while(i)
{
i/=10;
res ++;
}
return res;
}
void init()
{
int cnt = 0;
for( int i = 0; i <= K ; i ++)
{
sprintf(&num[cnt], "%d",i);
while(isdigit(num[cnt]))
cnt++;
}
// cout<<num<<endl;
int a = sum[0] = 0;
for( int i = 1; i <= K; i++)
{
a += fan(i);
sum[i] = sum[i-1] + a;
}
}
int main()
{
int t;
LL n;
scanf("%d",&t);
init();
while(t--)
{
scanf("%lld",&n);
LL L = 0, R = K;
LL mid;
while(L < R)
{
mid = L + (R - L)/2;
if(sum[mid] < n)
L = mid + 1;
else
R = mid ;
}
// cout<<R<<"->"<<sum[R]<<endl;
int k = n - sum[R-1];
printf("%c\n",num[k]);
}
return 0;
}
UVA 10706
最新推荐文章于 2019-01-08 03:23:48 发布