void populate_bucket(int digit, int *seq, int (*bucket)[SEQUENCE_LENGTH]) { int i, j, size; for (i = 0; i < 10; i++) { for (j = 0; j < SEQUENCE_LENGTH; j++) { if (i == get_nth_digit(seq[j], digit)) { bucket[i][j] = seq[j]; } } } }
int D(int n){ int step = 1; int size = log10(step) + 1; while(n > size){ n -= size; step++; size = log10(step) + 1; } return get_nth_digit(step, n-1); }