Skip to content
Advertisement

print numbers from 1 to 1000 digit number – interview question

I had an interview and I’ve been asked to print numbers from 1 to a 1000 digit number –

1, 2, 3, . . . ., 999999999999999999999999999999999999999999999999……..

I couldn’t solve it but I’m still looking for the best way to do it, because obviously, you cant use integers or floats in a case like this and because it’s a job interview I couldn’t use any libraries that can handle it.

Can anyone think of a good solution? preferably in Java/pseudocode.

Answer

Using recursion (if only to print):

void digits(int count) {
    if (count < 0) throw new IllegalArgumentException("invalid count: " + count);
    digits(count, "");
}

void digits(int count, String text) {
    if (count == 0) {
        System.out.println(text);
    } else {
        for (var i = 0; i < 10; i++) {
            if (i == 0 && text.isEmpty()) {
                digits(count-1, text);
            } else {
                digits(count-1, text+i);
            }
        }
    }
}
Advertisement