| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
水题!!!!!附代码!!#include<stdio.h>
__int64 d[32280];
int main()
{
// freopen("out.txt","r",stdin);
// freopen("out1.txt","w",stdout);
__int64 n,m,i,j,s,k,l,q,w,e,r,t,y;
s=0;
for(i=1;;i++)
{
if(i>=1&&i<=9)
{
d[i]=i;
s+=d[i];
}
if(i>=10&&i<=99)
{
d[i]=(i-9)*2+d[9];
s+=d[i];
}
if(i>=100&&i<=999)
{
d[i]=(i-99)*3+d[99];
s+=d[i];
}
if(i>=1000&&i<=9999)
{
d[i]=(i-999)*4+d[999];
s+=d[i];
}
if(i>=10000&&i<=99999)
{
d[i]=(i-9999)*5+d[9999];
s+=d[i];
}
if(s>2147483647)
{
break;
}
}
scanf("%I64d",&r);
{
//for(j=1;j<=i;j++)
// printf("%d ",d[j]);
while(r--)
{
scanf("%I64d",&n);
s=0;
for(i=1;;i++)
{
s+=d[i];
if(s>=n) break;
}
s-=d[i];
__int64 cnt=0;
for(j=1;;j++)
{
if(j<10) cnt+=1;
if(j>=10&&j<=99) cnt+=2;
if(j>=100&&j<=999) cnt+=3;
if(j>=1000&&j<=9999) cnt+=4;
if(j>=10000&&j<=99999) cnt+=5;
if(cnt+s>=n) break;
}
cnt+=s;
if(j<10)
{
printf("%I64d\n",j);
}
else if(j>=10&&j<=99)
{
if(cnt-n==0)
printf("%I64d\n",j%10);
if(cnt-n==1)
printf("%I64d\n",(j/10)%10);
}
else if(j>=100&&j<999)
{
if(cnt-n==0)
printf("%I64d\n",j%10);
if(cnt-n==1)
printf("%I64d\n",(j/10)%10);
if(cnt-n==2)
printf("%I64d\n",(j/100));
}
else if(j>=1000&&j<9999)
{
if(cnt-n==0)
printf("%I64d\n",j%10);
if(cnt-n==1)
printf("%I64d\n",(j/10)%10);
if(cnt-n==2)
printf("%I64d\n",(j/100)%10);
if(cnt-n==3)
printf("%I64d\n",(j/1000));
}
else if(j>=10000&&j<99999)
{
if(cnt-n==0)
printf("%I64d\n",j%10);
if(cnt-n==1)
printf("%I64d\n",(j/10)%10);
if(cnt-n==2)
printf("%I64d\n",(j/100)%10);
if(cnt-n==3)
printf("%I64d\n",(j/1000)%10);
if(cnt-n==4)
printf("%I64d\n",(j/1000)/10);
}
}
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator