POJ 1019 Number Sequence

来源:互联网 发布:国学书院知乎 编辑:程序博客网 时间:2024/04/26 16:59
 
#include <iostream>#include <cstdio>#include <cmath>using namespace std;int main(){    int t,n,i,digit_now,remain_digit,num,pos,ans;    long long int sum_digit;    scanf("%d",&t);    while (t--)    {        scanf("%d",&n);        for (i=1,sum_digit=0,digit_now=0;sum_digit<n;i++)        {            digit_now+=(int)log10((double)i)+1;            sum_digit+=digit_now;        }        sum_digit-=digit_now;        remain_digit=n-sum_digit;        for (i=1,digit_now=0;digit_now<remain_digit;i++)            digit_now+=(int)log10((double)i)+1;        num=i-1;        digit_now-=(int)log10((double)num)+1;        pos=(int)log10((double)num)+2-(remain_digit-digit_now);        for (i=1;i<pos;i++)            num/=10;        ans=num%10;        printf("%d\n",ans);    }    return 0;}