/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
static final int[] POWERS_OF_10 = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 100000000};
static int getValue(int index){
if (index-- == 0) // remove this if-statement to start from 1
return 0;
int digits = 0;
int positions = 0;
while (positions <= index)
{
index -= positions;
digits++;
positions = 9 * digits * POWERS_OF_10[digits-1];
}
int number = index / digits + POWERS_OF_10[digits-1];
int digit = index % digits;
int value
= Integer.
toString(number
).
charAt(digit
) - '0'; // lazy approach // int value = number / POWERS_OF_10[digits-digit-1] % 10; // non-lazy approach
return value;
}
{
for (int i = 0; i < 20; i++)
System.
out.
print(getValue
(i
) + ", "); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBJZGVvbmUKewoJc3RhdGljIGZpbmFsIGludFtdIFBPV0VSU19PRl8xMCA9IHsxLCAxMCwgMTAwLCAxMDAwLCAxMDAwMCwgMTAwMDAwLCAxMDAwMDAwLCAxMDAwMDAwMCwgMTAwMDAwMDAwLCAxMDAwMDAwMDB9OwoJc3RhdGljIGludCBnZXRWYWx1ZShpbnQgaW5kZXgpewoJCWlmIChpbmRleC0tID09IDApIC8vIHJlbW92ZSB0aGlzIGlmLXN0YXRlbWVudCB0byBzdGFydCBmcm9tIDEKCQkJcmV0dXJuIDA7CgkgICAgaW50IGRpZ2l0cyA9IDA7CgkgICAgaW50IHBvc2l0aW9ucyA9IDA7CgkgICAgd2hpbGUgKHBvc2l0aW9ucyA8PSBpbmRleCkKCSAgICB7CgkgICAgCWluZGV4IC09IHBvc2l0aW9uczsKCSAgICAJZGlnaXRzKys7CgkgICAgCXBvc2l0aW9ucyA9IDkgKiBkaWdpdHMgKiBQT1dFUlNfT0ZfMTBbZGlnaXRzLTFdOwoJICAgIH0KCSAgICBpbnQgbnVtYmVyID0gaW5kZXggLyBkaWdpdHMgKyBQT1dFUlNfT0ZfMTBbZGlnaXRzLTFdOwoJICAgIGludCBkaWdpdCA9IGluZGV4ICUgZGlnaXRzOwoJICAgIGludCB2YWx1ZSA9IEludGVnZXIudG9TdHJpbmcobnVtYmVyKS5jaGFyQXQoZGlnaXQpIC0gJzAnOyAvLyBsYXp5IGFwcHJvYWNoCgkgICAgLy8gaW50IHZhbHVlID0gbnVtYmVyIC8gUE9XRVJTX09GXzEwW2RpZ2l0cy1kaWdpdC0xXSAlIDEwOyAvLyBub24tbGF6eSBhcHByb2FjaAoJICAgIHJldHVybiB2YWx1ZTsKCX0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlmb3IgKGludCBpID0gMDsgaSA8IDIwOyBpKyspCgkJCVN5c3RlbS5vdXQucHJpbnQoZ2V0VmFsdWUoaSkgKyAiLCAiKTsKCX0KfQ==
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4,