| ||||||||||
| 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 | |||||||||
Re:水题!!!!!附代码!!In Reply To:水题!!!!!附代码!! Posted by:wocha at 2012-05-11 13:09:18 > #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