vv
2024-08-06 20:47:39
发布于:广东
6阅读
0回复
0点赞
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll pow10[10]=
{
1,10,100,1000,10000,100000,
1000000,10000000,100000000,
1000000000
};
ll digit(ll x)
{
ll ans=0;
while(x!=0)
{
ans++;
x/=10;
}
return ans;
}
ll sum(ll x)
{
ll ans=0;
ll len=digit(x);
for(ll i=1;i<len;i++)
{
ans+=9*pow10[i-1]i;
}
ll rest=x-pow10[len-1]+1;
ans+=restlen;
return ans;
}
int main()
{
freopen("who.in", "r", stdin);
freopen("who.out", "w", stdout);
ll t;
scanf("%lld",&t);
while(t--)
{
ll x;
scanf("%lld",&x);
ll s=0;
ll tmp=0;
while(s<x)
{
tmp++;
s+=sum(tmp);
}
s-=sum(tmp);
tmp--;
//加到第tmp个整位置
ll rest=x-s;//剩余位数
stringstream ss;
for(int i=1;i<=tmp+1;i++)
{
ss<<i;
}
string str;
str=ss.str();
putchar(str[rest-1]);
putchar('\n');
}
fclose(stdin);
fclose(stdout);
return 0;
}
这里空空如也
有帮助,赞一个