ZOJ-1410

来源:互联网 发布:linux 开机挂载 编辑:程序博客网 时间:2024/06/10 19:02
import java.util.Scanner;public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int count = sc.nextInt();for (int i = 0; i < count; i++){int input = sc.nextInt();long sum = 0;int index = 0;long temp = 0;while (sum < input){temp = total(++index);sum += temp;}System.out.println(caculate(input - sum + temp));}}static long caculate(long index){int i = 0;long sum = 0;long temp = 0;while (sum < index){temp = (long) (9 * Math.pow(10, i) * (i + 1));sum += temp;i++;}long a = (index - sum + temp) % i;long b = (index - sum + temp) / i;long tt = b + (long) Math.pow(10, i - 1);if (a == 0)return (tt - 1) % 10;elsereturn (tt + "").charAt((int) a - 1) - '0';}static long total(long n){int d = digits(n);if (d == 1)return n;else{long nine = (int) Math.pow(10, d - 1) - 1;return (n - nine) * d + total(nine);}}static int digits(long n){if (n == 0)return 1;int r = 0;while (n != 0){r++;n /= 10;}return r;}}

0 0
原创粉丝点击