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.
Advertisement
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); } } } }