您的位置:首页 > 产品设计 > UI/UE

poj 1019 Number Sequence

2010-09-04 01:20 393 查看
// poj 1019 Number Sequence
#include <iostream>
#include <algorithm>
using namespace std;

int mi[11];
int s[11],ss[11];

int main()
{
mi[1]=1;
for (int i=2;i<=10;i++) mi[i]=mi[i-1]*10;
for (int i=1;i<=10;i++) { s[i]=(mi[i+1]-mi[i])*i; ss[i]=ss[i-1]+s[i];}
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int temp=0,d=1;
__int64 sum=0;
for (int i=1;;i++)
{
if (i==mi[d+1]) d++;
// temp=(i-mi[d]+1)*d+ss[d-1];
temp+=d;
if (sum+temp>=n){
n-=sum;
if (n==0) { printf("%d/n",(i-1)%10); break;}
for (int j=1;j<=10;j++)
if (ss[j]>=n)
{
n-=ss[j-1];
if (n==0) { n=9; break;}
int b=j-(n-1)%j-1;
n=mi[j]+(n-1)/j;
n/=mi[b+1];
break;
}
printf("%d/n",n%10);
break;
}
sum+=temp;
}
}
// system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: