2682820_ac_0ms_588k.cc
来自「做的POJ的一些题目」· CC 代码 · 共 66 行
CC
66 行
#include<iostream>
using namespace std;
long long key[35000]={0};
int getDigit(int n)
{
int digit=1;
while(n/10)
{
n=n/10;
digit++;
}
return digit;
}
void init()
{
key[0]=0;
for(int i=1; i<35000; i++)
key[i]=key[i-1]+getDigit(i);
}
void getresult(int c,int n)
{
int num[12],k=0;
while(c>0)
{
num[k++]=c%10;
c=c/10;
}
printf("%d\n",num[k-n]);
}
int main()
{
int t;
long long sum,n,i;
init();
scanf("%d",&t);
while(t--)
{
cin>>n;
i=1,sum=0;
while(n>=sum+key[i])
{
sum=sum+key[i];
i++;
}
if(n==sum)
printf("%d\n",(i-1)%10);
else
{
n=n-sum;
for(i=1; key[i]<=n; i++);
n=n-key[i-1];
if(n!=0)
{
int num=i;
n=getDigit(num)-n;
for(i=1; i<=n; i++)
num=num/10;
printf("%d\n",num%10);
}
else
printf("%d\n",(i-1)%10);
}
}
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?