地址:http://acm.bit.edu.cn/mod/programming/view.php?id=660
水题。练c语言用=w=。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int t,n,i;
scanf("%d",&t);
while(t--)
{
int now=0,zen=1; //now现在一次序列长度 zen增量
scanf("%d",&n);
for(i=1;;i++,n-=now) //定位处于第几次序列
{
now+=zen;
if(i==9||i==99||i==999||i==9999||i==99999||i==999999) zen++;
if(n<=now) break;
}
for(i=1,zen=1;;i++) //定位处于第几个数
{
if(n<=zen) break;
else n-=zen;
if(i==9||i==99||i==999||i==9999||i==99999||i==999999) zen++;
}
n=floor(log10((double)i))-n+1; //找出i的第n位
while(n--) i/=10;
printf("%d\n",i%10);
}
return 0;
}