poj1019

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;

typedef long long int LLint;
int main()
{


	int kase;  
	LLint n;
	for(cin>>kase;kase--;)
	{

		cin>>n;
		char s[30];
		LLint k=0;
		LLint sum=0;
		int i;
		LLint pre=0;
		for( i=1;i<=99999&&sum<=2147483647;i++)
		{
			sprintf(s,"%d",i);
			k+=strlen(s);
			sum+=k;
			if(sum>=n)break;  
			pre=sum;      

		}
		if(sum==n)
		{
			cout<<s[strlen(s)-1]<<endl;
		}
		else
		{
			int j=i-1;
			n-=pre;
			LLint sum1=0;
			LLint jk=0;
			int lk;
			LLint pre1=0;
			for(lk=1;;lk++)
			{
				sprintf(s,"%d",lk);
				sum1+= strlen(s);;
				if(sum1>=n)break; 
				pre1=sum1;
			}
			if(sum1==n){cout<<s[strlen(s)-1]<<endl;}
			else
			{
				cout<<s[n-pre1-1]<<endl;
			}

		}

	}

	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章