| ||||||||||
| 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 | |||||||||
java的,一定要注意最后超界import java.io.*;
import java.util.*;
import java.math.*;
public class Main1019{
public static Scanner cin=new Scanner(System.in);
public static PrintWriter cout=new PrintWriter(System.out,true);
public static ArrayList<Integer> result=new ArrayList<Integer>();
public static void main(String[]args)
{
int t;
int i;
t=cin.nextInt();
while(t>0)
{
i=cin.nextInt();
int k=1;
long sum=0;
int m;
while(sum<i)
{
sum+=compute(k);
k++;
}
m=(int)((long)i-sum+(long)compute(k-1));
result.add(find(k-1,m));
t--;
}
for(int r:result)
{
cout.println(r);
}
}
public static int calbit(int w)
{
int bit=1;
while(w/10!=0)
{
w/=10;
bit++;
}
return bit;
}
public static int find(int x,int m)
{
for(int l=1;l<=x;l++)
{
m=m-calbit(l);
if(m<=0)
{
m+=calbit(l);
return (int)(l/Math.pow(10,calbit(l)-m))%10;
}
}
return 0;
}
public static int compute(int k)
{
int bit=calbit(k);
int sum=0;
for(int q=1;q<bit;q++)
{
sum+=9*Math.pow(10,q-1)*q;
}
sum+=(k-Math.pow(10,bit-1)+1)*bit;
return sum;
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator