| ||||||||||
| 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 | |||||||||
求助 : 为啥会错呢????????内服代码.//////sophia_philem
#include<iostream>
#include<cmath>
using namespace std;
unsigned long int length(unsigned long int k)
{
unsigned long int n= int(log10(k))+1;
unsigned long int len=0;
for(unsigned long int i=2;i<=n;i++)
{
len += 9 * unsigned long int( pow(10,i-2) )*(i-1);
}
len+=( k- unsigned long int(pow(10,n-1))+1 )*n;
return len;
}
unsigned long int leng(unsigned long int k )
{
unsigned long int len=0;
len=pow(10,k)-1;
return len;
}
long int main()
{
unsigned long int t;
cin>>t;
while( t > 0 )
{
t--;
unsigned long int i;
cin>>i;
for(unsigned long int j=1;;)
if( i > length(j) )
{
i-=length(j);
j++;
}
else
if( i== length(j))
{ break; }
else if( i < length (j) )
{ break;}
cout<<"j="<<j<<"i="<<i<<endl;
//s(j)组中 ;
for(unsigned long int k=1; ; )
if(i > leng(k) ) k++;
else if(i == leng(k)){ i = i-leng(k-1);break;}
else if( i< leng(k) )
{
i = i- leng(k-1); break;
}
unsigned long int n=k;//n位数;
cout<<n<<"位数"<<" i="<<i<<endl;
//////////
for(unsigned long int l=1 ; ; )
if(i> l * n ) l++;
else if(i == l*n) { i=i - (l-1)*n; break;}
else if(i < l*n) { i= i- (l-1)*n; break;}
//n位数中第l个;
cout<<n<<"位数中第"<<l<<"个 i="<<i<<endl;
unsigned long int p= unsigned long(pow( 10, n-1)) + l-1;//目标数;
cout<<"目标数="<<p<<endl;
unsigned long int q=0;
while(q < n - i )
{
p=p/10;
q++;
}
unsigned int res = p%10;
cout<<res<<endl;
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator